Apache HttpClient 5.5 har en SOCKS-konfigurasjonsvei i socket-innstillingene til tilkoblingsbehandleren. Det vedlikeholdte eksempelet bruker 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();

Utdraget bruker org.apache.hc-pakkene til HttpClient 5 og SocketConfig til HttpCore. Forespørsler som gjøres med denne klienten, bruker samlingen som er konfigurert ovenfor. Lukk klienten når eierskapsomfanget til applikasjonen tar slutt.

Sett den faktiske nettadressen til nettstedet på forespørselen som vanlig. For tillatte forespørsler til offentlige nettsteder uten proxy-autentisering tilbyr SOCKS-proxylisten kandidatadresser; velg en SOCKS-versjon som det faktiske kjøremiljøet støtter. SOCKS-adressen konfigurerer transporten som brukes for å nå den; det er ikke en HTTP-videresendingsproxyrute gitt som en HttpHost.

Dette er standard socket-innstillinger for denne behandleren. En applikasjon som bruker en SocketConfig-løser per rute, bør heller bruke den ønskede SOCKS-innstillingen gjennom denne policyen. Eksempelet beholder den vanlige DNS-policyen for målet til tilkoblingsbehandleren; fjernnavnoppslag krever en separat verifisert konfigurasjon.

Relaterte artikler