Java: заголовки HttpResponse никогда не имеют «Content-Encoding», но имеют «Vary: Accept-Encoding» - PullRequest
0 голосов
/ 02 июня 2011

Я использую следующий пример: http://www.devdaily.com/java/jwarehouse/commons-httpclient-4.0.3/httpclient/src/examples/org/apache/http/examples/client/ClientGZipContentCompression.java.shtml

Хотя добавление «Accept-Encoding: gzip» к заголовкам, как ожидается, сообщит серверу, что вы можете получить обратно кодировку gxip, похоже, это не работает. Вместо этого серверы отвечают только «Vary: Accept-Encoding». После долгого времени поиска в Google я даже не мог понять, что означает «Vary: Accept-Encoding». Почему серверы не отвечают «Content-Encoding: gzip», как должно быть? Я что-то упустил?

РЕДАКТИРОВАТЬ: Например, при проверке www.yahoo.com на этом веб-сайте (http://www.gidnetwork.com/tools/gzip-test.php), он вставляет правый заголовок (с кодировкой содержимого). Однако, когда я загружаю этот веб-сайт через код Java, заголовок с кодировкой содержимого не отображается. Почему это так?

Вот код, который я использую для печати заголовков в Java:

        Header[] h = response.getAllHeaders();
        for (int x = 0; x < h.length; x++)
            System.out.println(h[x]);

1 Ответ

1 голос
/ 02 июня 2011

Возможно, ваш сервер не настроен на возврат содержимого в формате gzip.

РЕДАКТИРОВАТЬ: против http://apache.org/, код работает, как описано. Паста на http://pastebin.com/Ajj4XBb1

...