У 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 споживає тіло відповіді та звільняє з'єднання для повторного використання.

Схожі статті