У меня есть веб-сервис.NET 3.5, размещенный на IIS7.5.
У меня есть клиентское приложение, которое подключается к этому веб-сервису.
Я изменил (в клиентском приложении)метод 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)