IIS7.5でホストされている.NET3.5Webサービスがあります。
このWebサービスに接続するクライアントアプリケーションがあります。
(クライアントアプリケーションで)httpWebRequest.Createメソッドを変更してGZipのautomaticDecompressionを追加しましたが、機能しません
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ヘッダーがありません)