Apache HttpClient 5.5 inneholder en SOCKS-konfigurasjonsvei i socket-innstillingene til tilkoblingsbehandleren. Det vedlikeholdte eksemplet 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 HttpClient 5 sine org.apache.hc-pakker og HttpCores SocketConfig. Forespørsler som gjøres med denne klienten, bruker samlingen som er konfigurert ovenfor. Lukk klienten når applikasjonens eierskapsomfang avsluttes.

Sett nettstedets faktiske URL 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 i stedet bruke den ønskede SOCKS-innstillingen gjennom denne policyen. Eksemplet beholder tilkoblingsbehandlerens vanlige DNS-policy for målet; fjernnavnoppslag krever en separat verifisert konfigurasjon.

Relaterte artikler