Impostazioni SOCKS di Apache HttpClient 5.5 sul gestore delle connessioni
Configurare la politica dei socket del pool con SocketConfig invece di una route proxy HTTP o di una factory di socket personalizzata.
Apache HttpClient 5.5 include un percorso di configurazione SOCKS nelle impostazioni socket del gestore delle connessioni. Il suo esempio mantenuto usa 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();
Il frammento usa i pacchetti org.apache.hc di HttpClient 5 e SocketConfig di HttpCore. Le richieste effettuate con questo client usano il pool configurato sopra. Chiudere il client quando l'ambito di proprietà dell'applicazione termina.
Impostare l'URL reale del sito sulla richiesta come al solito. Per le richieste consentite verso siti pubblici senza autenticazione proxy, la lista di proxy SOCKS offre indirizzi candidati; scegliere una versione di SOCKS supportata dall'ambiente di esecuzione reale. L'indirizzo SOCKS configura il trasporto usato per raggiungerlo; non è una route proxy inoltrata HTTP fornita come HttpHost.
Queste sono le impostazioni socket predefinite per questo gestore. Un'applicazione che usa un resolver SocketConfig per route dovrebbe invece applicare l'impostazione SOCKS desiderata tramite quella politica. L'esempio conserva la normale politica DNS di destinazione del gestore delle connessioni; la risoluzione remota dei nomi richiede una configurazione verificata separatamente.