解压缩来自WebClient的gzip响应

有没有一种快速的方法来解压缩与WebClient.DownloadString()方法下载的gzip响应? 对于如何使用WebClient处理gzip响应,您有什么build议吗?

最简单的方法是使用HttpWebRequest类的内置自动解压缩 。

 var request = (HttpWebRequest)HttpWebRequest.Create("http://stackoverflow.com"); request.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip,deflate"); request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate; 

要使用WebClient执行此操作,必须从WebClient派生自己的类并重写GetWebRequest()方法。

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

也看到这个线程: .NET的HttpWebResponse解压缩自动GZiped和缩小的响应?