我在.net 3.0应用程序中使用Web服务引用,我正在尝试设置gzip解码。
当我使用SoapUI时,响应使用gzip压缩,因为在请求中设置了标头'Accept-Encoding:gzip,deflate'。发送我的.net请求时,它没有此标头,因此服务器没有压缩响应。
我发现这个link描述了我想要做的事情。我实现了代码,并通过调试器验证了它是在每个请求上执行的,但它仍然没有添加'Accept-Encoding:gzip'标头。
接下来,我在链接中手动添加了标题。
httpWebRequest.Headers.Add("Accept-Encoding", "gzip");
最后我收到了来自服务器的压缩响应!但是,不,现在我得到一个格式错误的xml异常,我很确定是因为即使通过使用链接中的类设置了以下内容,响应也没有被解压缩。
httpWebRequest.AutomaticDecompression = DecompressionMethods.GZip;;
我无法理解出了什么问题。
答案 0 :(得分:2)
好的,我找到了解决问题的方法。
由于我使用的是Web引用,您必须在Web引用对象上设置EnableDecompression = true
。
所以解决方案是这样的
var client = new ReferredService
{
EnableDecompression = true
}
其中ReferredService是Web引用名称。