Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从WebClient解压缩gzip响应_C#_.net_Webclient - Fatal编程技术网

C# 从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

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

最简单的方法是使用内置的
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头?