SOCKS-instellings in Apache HttpClient 5.5 op die verbindingsbestuurder
Stel die poel se sok-beleid met SocketConfig in plaas van 'n HTTP-proxyroete of 'n pasgemaakte sokfabriek.
Apache HttpClient 5.5 bevat 'n SOCKS-konfigurasielyn op die verbindingsbestuurder se sok-instellings. Die voorbeeld wat onderhou word, gebruik 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();
Die fragment gebruik HttpClient 5 se org.apache.hc-pakkette en HttpCore se SocketConfig. Versoeke wat met hierdie kliënt gemaak word, gebruik die poel hierbo ingerig. Sluit die kliënt wanneer die toepassing se eienaarskapomvang eindig.
Plaas die werklike webwerf-URL op die versoek soos gewoonlik. Vir toegelate versoeke na openbare werwe sonder proxy-verifikasie bied die SOCKS-proxylys kandidaatadresse; kies 'n SOCKS-weergawe wat deur die werklike looptyd ondersteun word. Die SOCKS-adres stel die vervoer in wat gebruik word om dit te bereik; dit is nie 'n HTTP-vooruitproxyroete wat as 'n HttpHost verskaf word nie.
Dit is verstek-sok-instellings vir hierdie bestuurder. 'n Toepassing wat 'n SocketConfig-oplosser per roete gebruik, moet die verlangde SOCKS-instelling eerder deur daardie beleid toepas. Die voorbeeld behou die verbindingsbestuurder se normale DNS-beleid vir die bestemming; afstandnaamoplossing vereis 'n afsonderlik geverifieerde konfigurasie.