httpWebRequest.AutomaticDecompression does not set "Accept_Encoding: gzip" header
我在我的 .net 3.0 应用程序中使用 Web 服务引用,并且正在尝试设置 gzip 解码。
当我使用 SoapUI 时,响应是用 gzip 压缩的,因为在请求中设置了标题 \\'Accept-Encoding: gzip,deflate\\'。发送我的 .net 请求时,它没有此标头,因此服务器未压缩响应。
我找到了这个链接,它准确地描述了我想要做什么。我实现了代码并使用调试器验证它在每个请求上都被执行,但它仍然没有添加 \\'Accept-Encoding:gzip\\' 标头。
接下来,我通过链接在类中手动添加了标题。
1 | httpWebRequest.Headers.Add("Accept-Encoding","gzip"); |
我终于收到了来自服务器的压缩响应!但是不,现在我得到一个格式错误的 xml 异常,我很确定这是因为即使使用链接中的类设置了以下内容,响应也没有被解压缩。
1 | httpWebRequest.AutomaticDecompression = DecompressionMethods.GZip;; |
我不明白出了什么问题。
好的,我找到了解决问题的方法。
因为我使用的是网络引用,所以你必须在网络引用对象上设置
所以解决方案是这样的
1 2 3 4 |
ReferredService 是 Web 引用名称。