Я использую ссылку на веб-службу в своем приложении .net 3.0, и я пытаюсь настроить gzip-декодирование.httpWebRequest.AutomaticDecompression не устанавливает заголовок «Accept_Encoding: gzip»
Когда я использую SoapUI, ответы сжимаются с помощью gzip, потому что в запросе задан заголовок «Accept-Encoding: gzip, deflate». Когда мой запрос .net отправляется, у него нет этого заголовка, поэтому сервер не сжимает ответ.
Я нашел это link, который описывает, что именно я хочу делать. Я выполнил код и проверил с помощью отладчика, что он выполняется по каждому запросу, но он все еще не добавляет заголовок «Accept-Encoding: gzip».
Далее Я добавил заголовок вручную в класс по ссылке.
httpWebRequest.Headers.Add("Accept-Encoding", "gzip");
Наконец, я получил сжатый ответ с сервера! Но нет, теперь я получаю искаженное xml-исключение, которое, я уверен, связано с тем, что ответ не распадается, даже если для этого класса задан класс из ссылки.
httpWebRequest.AutomaticDecompression = DecompressionMethods.GZip;;
Я не могу понять, что происходит не так.
'.AutomaticDecompression = DecompressionMethods.GZip;' добавляет заголовок '' Accept-Encoding '', который сам может вмешаться в AutomaticDecompression. Вы должны использовать '(HttpWebRequest) WebRequest.Create()' также, istead этого уродливого отражения, используемого на странице, на которую вы ссылаетесь. – nos
Поскольку я использую веб-ссылку, я просто вызываю методы в ссылочной api и явным образом не создаю веб-запросы. Эти творения каким-то образом обрабатываются .net, и именно поэтому я использовал этот код отражения. Если я не добавляю заголовок для «Accept-Encoding», запрос не имеет этого заголовка, даже когда я устанавливаю .AutomaticDecompression = DecompressionMethods.GZip; Я вижу эту проблему, потому что я использую веб-ссылку? – Tbonebrad