Аутентификация прокси в Apache HttpClient 5 Fluent с Executor
Свяжите маршрут viaProxy Fluent Request с учётными данными в Apache HttpClient 5 Executor.
В Fluent API Apache HttpClient 5 объект Request может выбрать прокси, а Executor предоставляет его учётную запись. Выполните запрос через этот объект с учётными данными:
HttpHost proxy = new HttpHost("http", "proxy.example", 8080);
Executor executor = Executor.newInstance()
.auth(proxy, proxyUser, proxyPassword.toCharArray());
String body = executor.execute(
Request.get("https://www.example.com/").viaProxy(proxy))
.returnContent()
.asString();
Executor и Request берутся из org.apache.hc.client5.http.fluent; HttpHost — из org.apache.hc.core5.http. Переменные учётной записи берутся из конфигурации приложения.
Оба использования прокси намеренно описывают один и тот же хост и порт. viaProxy выбирает маршрут, а auth регистрирует учётные данные для этого посредника в Executor. Если итоговый результат по-прежнему 407, сравните выбранный маршрут с областью действия учётных данных.
Вызов удобного метода execute отдельного Request использовал бы другой путь выполнения. Держите Executor с учётными данными привязанным к операции, как в примере, чтобы клиент, получающий запрос, имел настроенную учётную запись.
Пример использует интерфейс пароля char-array из 5.x. Старые фрагменты HttpClient 4 Fluent используют другие пакеты и сигнатуры методов. После завершения запроса returnContent поглощает тело ответа и освобождает соединение для повторного использования.