解压缩来自 WebClient 的 gzip 响应

2023-12-03

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


最简单的方法是使用内置的自动减压HttpWebRequest class.

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 线程:.NET 的 HttpWebResponse 是否会自动解压缩 GZiped 和 Deflated 响应?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

解压缩来自 WebClient 的 gzip 响应 的相关文章

随机推荐