Pengaturan SOCKS Apache HttpClient 5.5 pada manajer koneksi
Konfigurasikan kebijakan soket kumpulan dengan SocketConfig, bukan rute proxy HTTP atau pabrik soket khusus.
Apache HttpClient 5.5 menyertakan jalur konfigurasi SOCKS pada pengaturan soket manajer koneksi. Contoh yang dipelihara menggunakan 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();
Fragmen ini memakai paket org.apache.hc dari HttpClient 5 dan SocketConfig dari HttpCore. Permintaan yang dibuat dengan klien ini memakai kumpulan yang dikonfigurasi di atas. Tutup klien ketika cakupan kepemilikan aplikasi berakhir.
Letakkan URL situs web yang sebenarnya pada permintaan seperti biasa. Untuk permintaan ke situs publik yang diizinkan tanpa autentikasi proxy, daftar proxy SOCKS menawarkan alamat kandidat; pilih versi SOCKS yang didukung oleh lingkungan eksekusi sebenarnya. Alamat SOCKS mengonfigurasi transport yang dipakai untuk mencapainya; itu bukan rute proxy penerus HTTP yang diberikan sebagai HttpHost.
Ini adalah pengaturan soket bawaan untuk manajer ini. Aplikasi yang memakai resolver SocketConfig per rute sebaiknya menerapkan pengaturan SOCKS yang diinginkan melalui kebijakan itu. Contoh ini mempertahankan kebijakan DNS tujuan normal manajer koneksi; resolusi nama jarak jauh memerlukan konfigurasi yang diverifikasi secara terpisah.