Apache HttpClient 5.5 merangkumi laluan konfigurasi SOCKS pada tetapan soket pengurus sambungan. Contohnya yang diselenggara 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();

Serpihan ini menggunakan pakej org.apache.hc HttpClient 5 dan SocketConfig HttpCore. Permintaan yang dibuat dengan klien ini menggunakan kumpulan yang dikonfigurasikan di atas. Tutup klien apabila skop pemilikan aplikasi tamat.

Letakkan URL sebenar tapak web pada permintaan seperti biasa. Untuk permintaan yang dibenarkan ke tapak awam tanpa pengesahan proksi, senarai proksi SOCKS menawarkan alamat calon; pilih versi SOCKS yang disokong oleh persekitaran larian sebenar. Alamat SOCKS mengkonfigurasikan pengangkutan yang digunakan untuk mencapainya; ia bukan laluan proksi pemajuan HTTP yang diberikan sebagai HttpHost.

Ini ialah tetapan soket lalai untuk pengurus ini. Aplikasi yang menggunakan penyelesai SocketConfig setiap laluan harus menggunakan tetapan SOCKS yang dikehendaki melalui dasar itu sebaliknya. Contoh ini mengekalkan dasar DNS destinasi biasa pengurus sambungan; penyelesaian nama jauh memerlukan konfigurasi yang disahkan secara berasingan.

Artikel berkaitan