Apache HttpClient 5.5 sisältää SOCKS-määrityspolun yhteyksien hallinnan socket-asetuksissa. Sen ylläpidetty esimerkki käyttää 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();

Katkelma käyttää HttpClient 5:n org.apache.hc-paketteja ja HttpCoren SocketConfig-luokkaa. Tällä asiakkaalla tehdyt pyynnöt käyttävät yllä määritettyä allasta. Sulje asiakas, kun sovelluksen omistusalue päättyy.

Aseta sivuston todellinen URL pyyntöön tavalliseen tapaan. Sallituille julkisten sivustojen pyynnöille ilman välityspalvelimen todennusta SOCKS-välityspalvelinluettelo tarjoaa ehdokasosoitteita; valitse SOCKS-versio, jota todellinen suoritusympäristö tukee. SOCKS-osoite määrittää sen saavuttamiseen käytettävän siirtokerroksen; se ei ole HttpHostina annettu HTTP-edelleenvälityspalvelinreitti.

Nämä ovat tämän hallinnan oletusarvoiset socket-asetukset. Sovelluksen, joka käyttää reittikohtaista SocketConfig-ratkaisijaa, tulisi soveltaa haluttu SOCKS-asetus sen käytännön kautta. Esimerkki säilyttää yhteyksien hallinnan normaalin kohde-DNS-käytännön; etänimen ratkaisu vaatii erikseen vahvistetun määrityksen.

Aiheeseen liittyvät artikkelit