Apache HttpClient 5.5 มีเส้นทางการกำหนดค่า SOCKS ในการตั้งค่าซ็อกเก็ตของตัวจัดการการเชื่อมต่อ ตัวอย่างที่ดูแลอยู่ใช้ 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();

ส่วนนี้ใช้แพ็กเกจ org.apache.hc ของ HttpClient 5 และ SocketConfig ของ HttpCore คำขอที่ทำด้วยไคลเอนต์นี้ใช้พูลที่กำหนดค่าไว้ข้างต้น ปิดไคลเอนต์เมื่อขอบเขตความเป็นเจ้าของของแอปพลิเคชันสิ้นสุดลง

วาง URL จริงของเว็บไซต์บนคำขอตามปกติ สำหรับคำขอที่ได้รับอนุญาตไปยังไซต์สาธารณะโดยไม่มีการตรวจสอบสิทธิ์พร็อกซี รายการพร็อกซี SOCKS เสนอที่อยู่ที่เป็นตัวเลือก เลือกเวอร์ชัน SOCKS ที่สภาพแวดล้อมรันไทม์จริงรองรับ ที่อยู่ SOCKS กำหนดค่าการขนส่งที่ใช้เพื่อไปถึงมัน ไม่ใช่เส้นทางพร็อกซีส่งต่อ HTTP ที่ให้มาเป็น HttpHost

นี่คือการตั้งค่าซ็อกเก็ตเริ่มต้นสำหรับตัวจัดการนี้ แอปพลิเคชันที่ใช้ตัวแก้ไข SocketConfig ต่อเส้นทางควรใช้การตั้งค่า SOCKS ที่ต้องการผ่านนโยบายนั้นแทน ตัวอย่างยังคงนโยบาย DNS ปลายทางปกติของตัวจัดการการเชื่อมต่อ การแก้ชื่อระยะไกลต้องมีการกำหนดค่าที่ตรวจสอบแยกต่างหาก

บทความที่เกี่ยวข้อง