如何在asp.net中直接显示httpwebresponse流中的图像
本文关键字:显示 httpwebresponse 图像 asp net | 更新日期: 2023-09-27 18:24:14
我想在不保存到文件的情况下直接将从webresponse收到的图像显示到浏览器。我使用了以下代码将图像保存到文件,但我想直接在浏览器中显示。网站在webresponse中提供了我想显示的captcha图像。请帮帮我。
public void captcha(string id, string pass)
{
HttpWebRequest req;
HttpWebResponse response;
string strNewValue,ckuser,ckpass;
System.Drawing.Image returnval;
ckuser = id;
ckpass = pass;
this.req = (HttpWebRequest)WebRequest.Create("http://site2sms.com/security/captcha.asp");
ServicePointManager.Expect100Continue = false;
this.req.CookieContainer = new CookieContainer();
this.req.AllowAutoRedirect = false;
this.req.UserAgent = "Mozilla/5.0 (Windows NT 6.1; rv:8.0) Gecko/20100101 Firefox/8.0";
this.req.Accept = "*/*";
this.req.Method = "POST";
this.req.CookieContainer = cookieCntr;
this.req.ContentType = "application/x-www-form-urlencoded";
this.req.Referer = "http://site2sms.com/verification.asp?source=login";
this.strNewValue = "user=" + ckuser + "&password=" + ckpass + "&Submit=Sign+in";
this.req.ContentLength = this.strNewValue.Length;
StreamWriter writer = new StreamWriter(this.req.GetRequestStream(), Encoding.ASCII);
writer.Write(this.strNewValue);
writer.Close();
this.response = (HttpWebResponse)this.req.GetResponse();
returnval = Image.FromStream(response.GetResponseStream());
// returnval.Save( Server.MapPath("captcha.bmp"));
Response.AppendHeader("Content-Disposition:", "inline;filename=captcha.bmp");
Response.ContentType = "image/bmp";
Response.Write(returnval);
Response.End();
this.response.Close();
}
-
您可以使用HttpResponse.WriteFile方法将流直接发送到客户端。将指定的文件直接写入HTTP响应输出流。
-
您可以创建IHttpHandler来发送流,从而避免一些页面生命周期,提高性能。这是链接