Apache HttpAsyncClient 5: configure SOCKS com IOReactorConfig
Defina o endereço do proxy no reactor antes de iniciar o HttpAsyncClient 5, em vez de aplicar a configuração de sockets do cliente clássico.
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();Envie as requisições assíncronas pretendidas por esse cliente, mantendo os URIs de destino reais. Mantenha o cliente ativo durante o trabalho e feche-o depois. Para requisições permitidas a destinos públicos, a lista de proxies SOCKS fornece candidatos de host e porta; use uma versão de SOCKS compatível com o reactor.
O reactor controla esse caminho de sockets assíncronos. Uma rota de proxy HTTP com HttpHost ou o SocketConfig do gerenciador de conexões clássico é outra interface.
Para autenticação SOCKS com usuário e senha, quando compatível, defina também setSocksProxyUsername e setSocksProxyPassword no builder do reactor. Conclua a configuração antes de start, em vez de alterar opções compartilhadas enquanto as requisições estão em andamento.