#java #https #httpresponse #http-toolkit
#Ява #https #httpresponse #http-инструментарий
Вопрос:
Добрый вечер,
я столкнулся со странной проблемой, с которой никогда раньше не сталкивался, поэтому я надеюсь, что кто-нибудь может мне помочь.
Я отправляю запрос на сервер и ожидаю определенного ответа.
Выполнение вызова через
response = httpClient.newCall(request).execute();
Параллельно я проверяю запрос с помощью инструментария HTTP. Там я вижу, что сервер отвечает 200 ОК и определенным потоком сообщений, который я ожидаю ( начинается с
0a a1 0a 0a 1e 74 79 70 65 2e 67 6f 6f 67 6c 65 61 70 69 73 2e
В коде, который я использую System.out.println(«ResponseBody:» (тело ответа().Байт-строка().шестнадцатеричный())); для valide это показывает тот же результат, что и в HTTP Toolkit, но по какой-то причине я получаю совершенно другой ответ. Начинается с
1f8b0800000000000403a594cb4a033114866d4bbd
Почему есть разница. Я также попытался прекратить перехватывать запрос с помощью инструментария Http, чтобы убедиться, что он не обрабатывается инструментом, но это также приводит к необъявленному значению. Также попытался отладить его, но как только я увижу ответ.тело в среде IDE уже содержит неожиданный результат.
Я надеюсь, что кто-то столкнется с той же проблемой и знает решение.
Овации
Комментарии:
1. 1f8b-это магическое число для
gzip
. Что сервер возвращает в заголовке ответа с кодировкой содержимого ?2. Вы правы. кодирование содержимого: gzip Я пропустил это и сосредоточился только на типе содержимого, большое вам спасибо.
3. Хорошо, я протестировал его и распаковал gzip. Теперь я получаю ожидаемые результаты.