Apache HttpClient 5.5 inclou una via de configuració SOCKS a la configuració de sòcols del gestor de connexions. El seu exemple mantingut fa servir 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();

El fragment fa servir els paquets org.apache.hc d'HttpClient 5 i SocketConfig d'HttpCore. Les peticions fetes amb aquest client utilitzen el pool configurat més amunt. Tanqueu el client quan acabi l'abast de propietat de l'aplicació.

Poseu l'URL real del lloc web a la petició com de costum. Per a peticions permeses a llocs públics sense autenticació de proxy, la llista de proxys SOCKS ofereix adreces candidates; trieu una versió de SOCKS compatible amb l'entorn d'execució real. L'adreça SOCKS configura el transport utilitzat per arribar-hi; no és una ruta de proxy directe HTTP subministrada com a HttpHost.

Aquestes són la configuració de sòcols predeterminada d'aquest gestor. Una aplicació que utilitza un resolutor de SocketConfig per ruta hauria d'aplicar-hi la configuració SOCKS desitjada mitjançant aquesta política. L'exemple conserva la política DNS de destinació normal del gestor de connexions; la resolució remota de noms requereix una configuració verificada a part.

Articles relacionats