返回字符
HTTP/1.1 200 OK
Date: Thu, 15 Nov 2007 01:09:49 GMT
Server: Microsoft-IIS/6.0
MicrosoftOfficeWebServer: 5.0_Pub
X-Powered-By: ASP.NET
Pragma: no-cache
cache-ctrol: no-cache
Content-Length: 1254
Content-Type: image/BMP
Expires: Thu, 15 Nov 2007 01:08:49 GMT
Set-Cookie: ASPSESSIONIDSQSQTRST=GOOONBLBJCDIBGFHALMMIPOH; path=/
Cache-control: privateBM?
这个MB?后面无法显示,这里应该就是图片了,但是我不知道怎么把图片弄到pictureBox1中
string picstr = this._data.Substring(this._header.Length+4);
byte[] s = (byte[])System.Text.Encoding.Default.GetBytes(picstr.Trim());
MemoryStream buf = new MemoryStream(s);
Image image = Image.FromStream(buf,true);
return image;
提示我说参数无效,picstr 是我从BM开始截取的,包含BM,头都大了,那位老大指点一下,感激不尽
HTTP/1.1 200 OK
Date: Thu, 15 Nov 2007 01:09:49 GMT
Server: Microsoft-IIS/6.0
MicrosoftOfficeWebServer: 5.0_Pub
X-Powered-By: ASP.NET
Pragma: no-cache
cache-ctrol: no-cache
Content-Length: 1254
Content-Type: image/BMP
Expires: Thu, 15 Nov 2007 01:08:49 GMT
Set-Cookie: ASPSESSIONIDSQSQTRST=GOOONBLBJCDIBGFHALMMIPOH; path=/
Cache-control: privateBM?
这个MB?后面无法显示,这里应该就是图片了,但是我不知道怎么把图片弄到pictureBox1中
string picstr = this._data.Substring(this._header.Length+4);
byte[] s = (byte[])System.Text.Encoding.Default.GetBytes(picstr.Trim());
MemoryStream buf = new MemoryStream(s);
Image image = Image.FromStream(buf,true);
return image;
提示我说参数无效,picstr 是我从BM开始截取的,包含BM,头都大了,那位老大指点一下,感激不尽
你应该先把响应头取出来转换成文本(响应头数据一般都是ASCII文本数据),然后根据响应头当中的Content-Type标头来确定怎么处理空行后面的实体内容,如果是text/html,就把它转换成文本,如果是其他的如image/BMP,就应该以二进制(字节数组)或流的方式存储。当然你也可以根据你的URL来确定如何处理实体内容,例如URL请求的是网页不是文件,你就可以把它转换成文本,如果是一个图片地址,那你就只能以流的方式存储了。正确的得到实体内容后,你再用picturebox来显示就不会有错了。(另外picturebox本身具有显示网络图片的功能,只要给它的ImageLocation属性赋值为图片URL即可)
正好我刚用C#写了个用socekt实现http协议的类,你可以参考下:
http://blog.csdn.net/wo789/archive/2007/11/13/1882176.aspx