为了账号安全,请及时绑定邮箱和手机立即绑定

通过WebClient.DownloadData自动解压缩gzip响应

通过WebClient.DownloadData自动解压缩gzip响应

守着星空守着你 2019-08-28 10:43:52
通过WebClient.DownloadData自动解压缩gzip响应我希望自动解压缩GZiped的响应。我使用以下代码段:mywebclient.Headers[HttpRequestHeader.AcceptEncoding] = "gzip";mywebclient.Encoding = Encoding.UTF8;try{     var resp = mywebclient.DownloadData(someUrl);}我已经检查了HttpRequestHeader enum,没有选择通过这个来做到这一点Headers如何自动解压缩resp?或者我应该使用另一种功能而不是mywebclient.DownloadData?
查看完整描述

2 回答

?
慕少森

TA贡献2019条经验 获得超9个赞

WebClient使用HttpWebRequest。而HttpWebRequest支持gzip / deflate解压缩。请参阅HttpWebRequest AutomaticDecompression属性

但是,WebClient类不直接公开此属性。所以你必须从它派生来在底层的HttpWebRequest上设置属性。

class MyWebClient : WebClient{
    protected override WebRequest GetWebRequest(Uri address)
    {
        HttpWebRequest request = base.GetWebRequest(address) as HttpWebRequest;
        request.AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip;
        return request;
    }}


查看完整回答
反对 回复 2019-08-28
  • 2 回答
  • 0 关注
  • 772 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信