Apache HttpClient 5.5 obsahuje cestu konfigurace SOCKS v socketovém nastavení správce připojení. Jeho udržovaný příklad používá 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();

Fragment používá balíčky org.apache.hc z HttpClient 5 a SocketConfig z HttpCore. Požadavky vytvořené tímto klientem používají pool nakonfigurovaný výše. Zavřete klienta, když skončí rozsah vlastnictví aplikace.

Vložte skutečnou URL webu do požadavku jako obvykle. Pro povolené požadavky na veřejné stránky bez ověřování proxy nabízí seznam SOCKS proxy kandidátské adresy; vyberte verzi SOCKS, kterou podporuje skutečné běhové prostředí. Adresa SOCKS konfiguruje přenos použitý k jejímu dosažení; není to trasa HTTP dopředného proxy předaná jako HttpHost.

Toto je výchozí socketové nastavení tohoto správce. Aplikace, která používá překladač SocketConfig pro jednotlivé trasy, má požadované nastavení SOCKS použít místo toho prostřednictvím této politiky. Příklad zachovává běžnou DNS politiku cíle správce připojení; vzdálené překládání názvů vyžaduje samostatně ověřenou konfiguraci.

Související články