Setările SOCKS din Apache HttpClient 5.5 pe managerul de conexiuni
Configurați politica de socket a pool-ului cu SocketConfig în loc de o rută de proxy HTTP sau o fabrică de socket personalizată.
Apache HttpClient 5.5 include o cale de configurare SOCKS în setările de socket ale managerului de conexiuni. Exemplul său întreținut folosește 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();
Fragmentul folosește pachetele org.apache.hc ale HttpClient 5 și SocketConfig din HttpCore. Cererile făcute cu acest client folosesc pool-ul configurat mai sus. Închideți clientul când domeniul de proprietate al aplicației se încheie.
Puneți URL-ul real al site-ului pe cerere ca de obicei. Pentru cererile permise către site-uri publice fără autentificare proxy, lista de proxy SOCKS oferă adrese candidate; alegeți o versiune SOCKS acceptată de mediul de execuție real. Adresa SOCKS configurează transportul folosit pentru a o atinge; nu este o rută de proxy de redirecționare HTTP furnizată ca HttpHost.
Acestea sunt setările de socket implicite pentru acest manager. O aplicație care folosește un resolver SocketConfig pe rută ar trebui să aplice setarea SOCKS dorită prin acea politică. Exemplul păstrează politica DNS normală de destinație a managerului de conexiuni; rezolvarea la distanță a numelor necesită o configurație verificată separat.