Apache палата общин HttpClient поддерживает GZIP?

Вы ищете что-то, что называется «сделай пока».

Из того, что я помню в python, нет такого ключевого слова "do", которое вы могли видеть на других языках.

Вот альтернатива:

while True:
    # the code you already have

    # set response = input
    if response != "yes":
        break
29
задан Jonik 5 May 2014 в 12:43
поделиться

3 ответа

Apache HttpClient 4.1 "из коробки" поддерживает сжатие содержимого, а также многие другие функции, которые ранее считались выходящими за рамки.

27
ответ дан 28 November 2019 в 01:26
поделиться

Начиная с 4.1, Apache HttpClients обрабатывает сжатие запросов и ответов.

  • Вам не нужно сжимать запрос, не нужно устанавливать «Accept-Encoding» в заголовках запросов.
  • Он также автоматически обрабатывает декомпрессию ответа, нет необходимости обрабатывать декомпрессию ответа.
  • До 4.3 он обрабатывает gzip и выкачивает. Вы можете проверить ResponseContentEncoding api doc здесь .

Просто используйте:

HttpClients.custom()

, который использует:

HttpClientBuilder.create()

Если вы хотите проверить в библиотеке Перейти к HttpClientBuilder он использует RequestAcceptEncoding & amp; ResponseContentEncoding

Вы можете отключить его с помощью «disableContentCompression ()»

HttpClient httpClient = HttpClients.custom()
                .setConnectionManager(cm)
                .disableContentCompression() //this disables compression
                .build();

Пожалуйста, убедитесь, что если вы добавляете какой-либо перехватчик, он может это переопределить, используйте его осторожно.

HttpClient httpClient = HttpClients.custom()
                .setConnectionManager(cm)
                .setHttpProcessor(httpprocessor) //this interceptor can override your compression.
                .build();
4
ответ дан Garry 28 November 2019 в 01:26
поделиться

Он не поддерживает эту готовую версию и вряд ли будет добавлен в HttpClient 3.x (см. Довольно неприятную проблему с JIRA. здесь ). Однако вы можете сделать это, добавив пользовательские средства чтения запросов и ручную обработку потока запросов / ответов, расположенных поверх базовой библиотеки, но это неудобно.

Кажется, вы можете сделать это с помощью HttpClient 4, но не без некоторых усилий.

Довольно дрянной, если вы спросите меня, все это действительно должно быть проще, чем есть на самом деле.

8
ответ дан 28 November 2019 в 01:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: