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

通过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


守着星空守着你
浏览 776回答 2
2回答

慕少森

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;     }}
打开App,查看更多内容
随时随地看视频慕课网APP