SOCKS-instellingen van Apache HttpClient 5.5 op de verbindingsbeheerder
Configureer het socketbeleid van de pool met SocketConfig in plaats van een HTTP-proxyroute of een aangepaste socketfabriek.
Apache HttpClient 5.5 bevat een SOCKS-configuratiepad in de socketinstellingen van de verbindingsbeheerder. Het onderhouden voorbeeld gebruikt 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();
Het fragment gebruikt de org.apache.hc-pakketten van HttpClient 5 en de SocketConfig van HttpCore. Verzoeken via deze client gebruiken de hierboven geconfigureerde pool. Sluit de client wanneer het eigendomsbereik van de toepassing eindigt.
Plaats de werkelijke website-URL zoals gebruikelijk op het verzoek. Voor toegestane verzoeken aan openbare sites zonder proxy-authenticatie biedt de SOCKS-proxylijst kandidaatadressen; kies een SOCKS-versie die de werkelijke runtime ondersteunt. Het SOCKS-adres configureert het transport dat wordt gebruikt om het te bereiken; het is geen HTTP-doorstuurproxyroute die als HttpHost wordt geleverd.
Dit zijn de standaardsocketinstellingen voor deze beheerder. Een toepassing die een SocketConfig-resolver per route gebruikt, moet de gewenste SOCKS-instelling via dat beleid toepassen. Het voorbeeld behoudt het normale DNS-beleid van de verbindingsbeheerder voor de bestemming; naamresolutie op afstand vereist een apart geverifieerde configuratie.