加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

C#下载未知格式的图像

发布时间:2020-12-14 22:53:54 所属栏目:资源 来源:网络整理
导读:我正在处理批量下载程序,但有些URL没有正确发送数据. 例如,此页面:http://i.imgbox.com/absMQK6A.png 在任何互联网浏览器中,此页面显示图像,但在我的程序中,下载奇怪的数据. 我认为这个URL是假的或受保护的(我不太了解HTML.) 顺便说一句,在IE中,我可以通过

我正在处理批量下载程序,但有些URL没有正确发送数据.

例如,此页面:http://i.imgbox.com/absMQK6A.png

在任何互联网浏览器中,此页面显示图像,但在我的程序中,下载奇怪的数据.
我认为这个URL是假的或受保护的(我不太了解HTML.)

顺便说一句,在IE中,我可以通过右键单击正常下载该图像并保存为图像.
所以我想在我的程序中模仿这种行为.

我怎样才能做到这一点?

以下是我的程序代码的一部分.

HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(DownloadAddress);
if (Proxy != null)
{
    request.Proxy = Proxy;
}
if (!string.IsNullOrWhiteSpace(UserAgent))
{
    request.UserAgent = UserAgent;
}

HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream downloadHttpStream = response.GetResponseStream();
int read = downloadHttpStream.Read(buffer,buffer.Length);
// output codes

UserAgent是具有浏览器信息的字符串.
如IE,Firefox等

谢谢.

最佳答案
如果您查看使用代码返回的数据的前几个字节,您可以看到它从1F 8B 08. This indicates开始,数据是gzip数据(gzip编码在Web上很常见).您可以包含AutomaticDecompression属性以使.Net代码自动解压缩此数据并获得有效的PNG(字节以89 50 4E 47开头):

var request = (HttpWebRequest)HttpWebRequest.Create(DownloadAddress);
request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读