import java.net.InetSocketAddress;
import org.apache.hc.core5.reactor.IOReactorConfig;
import org.apache.hc.client5.http.impl.async.HttpAsyncClients;

var reactor = IOReactorConfig.custom()
    .setSocksProxyAddress(new InetSocketAddress("proxy.example", 1080))
    .build();
var client = HttpAsyncClients.custom()
    .setIOReactorConfig(reactor)
    .build();
client.start();

Отправляйте нужные асинхронные запросы этим клиентом, сохраняя их настоящие целевые URI. Держите клиент открытым во время работы и закройте после её завершения. Для разрешённых запросов к публичным адресатам список SOCKS-прокси предлагает хосты и порты; выбирайте версию SOCKS, которую поддерживает reactor.

Этот асинхронный socket-путь контролирует reactor. Маршрут HTTP-прокси с HttpHost или SocketConfig классического менеджера соединений — другой интерфейс.

Для поддерживаемой SOCKS-аутентификации по имени пользователя и паролю задайте также setSocksProxyUsername и setSocksProxyPassword в builder реактора. Завершите настройку до start, а не меняйте общие параметры во время выполнения запросов.

Похожие статьи