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.

Gerelateerde artikelen