C# 从WebClient解压缩gzip响应
有没有一种快速的方法来解压缩用WebClient.DownloadString()方法下载的gzip响应?关于如何使用WebClient处理gzip响应,您有什么建议吗?最简单的方法是使用内置的C# 从WebClient解压缩gzip响应,c#,.net,webclient,C#,.net,Webclient,有没有一种快速的方法来解压缩用WebClient.DownloadString()方法下载的gzip响应?关于如何使用WebClient处理gzip响应,您有什么建议吗?最简单的方法是使用内置的HttpWebRequest类 var request = (HttpWebRequest)HttpWebRequest.Create("http://stackoverflow.com"); request.Headers.Add(HttpRequestHeader.AcceptEncoding, "g
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;
}
}
另请参见此SO线程:是否不需要为派生的webclient类指定acceptencoding头?