use*_*359 2 .net c# compression gzip httpwebrequest
我有一个程序,它产生了很多HttpWebRequests,我读到了使用gzip压缩来加速响应数据的下载.我知道gzip是什么,以及它是如何工作的,但我不知道它在C#中是如何工作的.
假设我有一个简单的GET请求:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://google.com");
request.Method = "GET";
WebResponse response = request.GetResponse();
Run Code Online (Sandbox Code Playgroud)
如何在gzip中压缩响应数据?如何显示压缩大小,然后显示未压缩的大小?
谢谢
有关GZip如何处理Web请求的概要,请参阅此页面.
您需要发送的特定标头是Accept-Encoding: gzip.通常,您需要自己(通过Headers集合)将此添加到请求中,但是有一个快捷方式.根据这个答案,您需要做的就是添加
request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
Run Code Online (Sandbox Code Playgroud)
你的代码.
请注意,您可能无法获得压缩/未压缩的大小 - 请求将在它进入时自动解压缩.但是,因为您无法提前知道服务器是否会尝试发送给您GZipped页面,测试它并不是一件有用的事情.
| 归档时间: |
|
| 查看次数: |
7644 次 |
| 最近记录: |