Configuració SOCKS d'Apache HttpClient 5.5 al gestor de connexions
Configureu la política de sòcols del pool amb SocketConfig en lloc d'una ruta de proxy HTTP o una fàbrica de sòcols pròpia.
Apache HttpClient 5.5 inclou una via de configuració SOCKS a la configuració de sòcols del gestor de connexions. El seu exemple mantingut fa servir setSocksProxyAddress:
InetSocketAddress socks =
new InetSocketAddress("proxy.example.net", 1080);
PoolingHttpClientConnectionManager manager =
PoolingHttpClientConnectionManagerBuilder.create()
.setDefaultSocketConfig(
SocketConfig.custom()
.setSocksProxyAddress(socks)
.build()
)
.build();
CloseableHttpClient client = HttpClients.custom()
.setConnectionManager(manager)
.build();
El fragment fa servir els paquets org.apache.hc d'HttpClient 5 i SocketConfig d'HttpCore. Les peticions fetes amb aquest client utilitzen el pool configurat més amunt. Tanqueu el client quan acabi l'abast de propietat de l'aplicació.
Poseu l'URL real del lloc web a la petició com de costum. Per a peticions permeses a llocs públics sense autenticació de proxy, la llista de proxys SOCKS ofereix adreces candidates; trieu una versió de SOCKS compatible amb l'entorn d'execució real. L'adreça SOCKS configura el transport utilitzat per arribar-hi; no és una ruta de proxy directe HTTP subministrada com a HttpHost.
Aquestes són la configuració de sòcols predeterminada d'aquest gestor. Una aplicació que utilitza un resolutor de SocketConfig per ruta hauria d'aplicar-hi la configuració SOCKS desitjada mitjançant aquesta política. L'exemple conserva la política DNS de destinació normal del gestor de connexions; la resolució remota de noms requereix una configuració verificada a part.