图片gzip压缩解压缩

mysky0103 2012-10-11 06:19:47
现在我通过httpwatch发现图片返回信息是gzip格式的
HTTP/1.1 200 OK
Server: nginx/1.0.15
Date: Thu, 11 Oct 2012 10:20:43 GMT
Content-Type: text/html;charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding
Pragma: No-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
P3P: CP=CAO PSA OUR
Content-Encoding: gzip

490
?

我应该如何保存下来啊如何解压缩然后保存成图片
...全文
499 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
mysky0103 2012-10-12
  • 打赏
  • 举报
回复
Content-Encoding: gzip

这个是用httpwatch 看到的,WebResponse.ContentEncoding.ToLower().Contains("gzip"))
这个显示是否
孟子E章 2012-10-12
  • 打赏
  • 举报
回复
Content-Encoding不是gzip吗?你怎么说没检测到呢
mysky0103 2012-10-12
  • 打赏
  • 举报
回复
httpwatch 显示是gzip
HTTP/1.1 200 OK
Server: nginx/1.0.15
Date: Fri, 12 Oct 2012 02:12:09 GMT
Content-Type: text/html;charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding
Pragma: No-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
P3P: CP=CAO PSA OUR
Content-Encoding: gzip

42c
?
孟子E章 2012-10-12
  • 打赏
  • 举报
回复
new WebClient().DownloadFile()
孟子E章 2012-10-12
  • 打赏
  • 举报
回复
没有包含gzip说明不是gzip的啊

mysky0103 2012-10-12
  • 打赏
  • 举报
回复
请孟大侠 帮忙啊
mysky0103 2012-10-12
  • 打赏
  • 举报
回复
请教下 我用httpwatch 看到返回的流中 是Content-Encoding: gzip,但是程序中获取WebResponse.ContentEncoding.ToLower().Contains("gzip") 没有包含gzip,进行解压缩也报错
孟子E章 2012-10-12
  • 打赏
  • 举报
回复
responseStream = new DeflateStream(responseStream, CompressionMode.Decompress);

就是解压后的流,你保存成图片即可

一般情况下,图片是不用gzip的,反而会影响性能
mysky0103 2012-10-12
  • 打赏
  • 举报
回复
确实是图片啊,显示的是图片验证码
孟子E章 2012-10-11
  • 打赏
  • 举报
回复
Content-Type: text/html;charset=UTF-8
这不是图片,就是html内容
HttpWebRequest Http = (HttpWebRequest)WebRequest.Create(Url);
Http.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip,deflate");
HttpWebResponse WebResponse = (HttpWebResponse)Http.GetResponse();
Stream responseStream = responseStream = WebResponse.GetResponseStream();
if (WebResponse.ContentEncoding.ToLower().Contains("gzip"))
responseStream = new GZipStream(responseStream, CompressionMode.Decompress);
else if (WebResponse.ContentEncoding.ToLower().Contains("deflate"))
responseStream = new DeflateStream(responseStream, CompressionMode.Decompress);

StreamReader Reader = new StreamReader(responseStream, Encoding.Default);

string Html = Reader.ReadToEnd();

WebResponse.Close();
responseStream.Close();

62,127

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧