SOCKS-inställningar i Apache HttpClient 5.5 på anslutningshanteraren
Konfigurera poolens socketpolicy med SocketConfig i stället för en HTTP-proxyväg eller en anpassad socketfabrik.
Apache HttpClient 5.5 innehåller en SOCKS-konfigurationsväg i anslutningshanterarens socketinställningar. Dess underhållna exempel använder 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();
Utdraget använder HttpClient 5:s org.apache.hc-paket och HttpCores SocketConfig. Förfrågningar som görs med denna klient använder poolen som konfigurerats ovan. Stäng klienten när programmets ägarskapsomfång tar slut.
Ange webbplatsens faktiska URL på förfrågan som vanligt. För tillåtna förfrågningar till offentliga webbplatser utan proxyautentisering erbjuder SOCKS-proxylistan kandidatadresser; välj en SOCKS-version som den faktiska körmiljön stöder. SOCKS-adressen konfigurerar den transport som används för att nå den; det är inte en HTTP-vidarebefordranproxvyäg som ges som HttpHost.
Detta är standardinställningar för socketar för denna hanterare. Ett program som använder en SocketConfig-lösare per väg bör i stället tillämpa den önskade SOCKS-inställningen via den policyn. Exemplet behåller anslutningshanterarens normala DNS-policy för målet; fjärrnamnuppslagning kräver en separat verifierad konfiguration.