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.

Verwante artikels