我有一个托管在 IIS7.5 上的 .NET 3.5 Web 服务。
我有一个连接到此 Web 服务的客户端应用程序。
我更改(在客户端应用程序中)httpWebRequest.Create 方法为 GZip 添加自动解压缩,但它不起作用
WebRequest IWebRequestCreate.Create(Uri uri)
{
HttpWebRequest httpWebRequest =
Activator.CreateInstance(
typeof(HttpWebRequest),
BindingFlags.CreateInstance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance,
null,
new object[] { uri, null },
null) as HttpWebRequest;
if (httpWebRequest == null)
return null;
httpWebRequest.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip, deflate");
httpWebRequest.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
return httpWebRequest;
}
这样请求正确发送,答案以gzip编码(我从Fiddler看到),但出现异常:
Response is not wellformed XML
(我认为客户没有解码答案)
如果我删除这一行,如 MSDN 文档中所示
httpWebRequest.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip, deflate");
答案不是 GZip 编码的(并且在请求中没有 ACCEPT-ENCODING 标头)