SOCKS-indstillinger i Apache HttpClient 5.5 på forbindelsesmanageren
Konfigurer puljens socket-politik med SocketConfig i stedet for en HTTP-proxyrute eller en tilpasset socket-fabrik.
Apache HttpClient 5.5 indeholder en SOCKS-konfigurationsvej i forbindelsesmanagerens socket-indstillinger. Dets vedligeholdte eksempel bruger 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();
Uddraget bruger HttpClient 5's org.apache.hc-pakker og HttpCores SocketConfig. Forespørgsler, der laves med denne klient, bruger den pulje, der er konfigureret ovenfor. Luk klienten, når applikationens ejerskabsomfang slutter.
Sæt webstedets faktiske URL på forespørgslen som sædvanligt. For tilladte forespørgsler til offentlige websteder uden proxy-godkendelse tilbyder SOCKS-proxylisten kandidatadresser; vælg en SOCKS-version, som det faktiske kørselsmiljø understøtter. SOCKS-adressen konfigurerer den transport, der bruges til at nå den; det er ikke en HTTP-videresendelsesproxyrute angivet som en HttpHost.
Dette er standard-socket-indstillinger for denne manager. En applikation, der bruger en SocketConfig-opløser pr. rute, bør i stedet anvende den ønskede SOCKS-indstilling gennem den politik. Eksemplet bevarer forbindelsesmanagerens normale DNS-politik for destinationen; fjernnavneopløsning kræver en særskilt verificeret konfiguration.