Apache HttpAsyncClient 5: настройка SOCKS через IOReactorConfig
Задайте адрес прокси в reactor до запуска HttpAsyncClient 5, а не через socket-конфигурацию классического клиента.
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, а не меняйте общие параметры во время выполнения запросов.