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();

यह अंश HttpClient 5 के org.apache.hc पैकेज और HttpCore के SocketConfig का उपयोग करता है। इस क्लाइंट से किए गए अनुरोध ऊपर कॉन्फ़िगर किए गए पूल का उपयोग करते हैं। एप्लिकेशन का स्वामित्व-दायरा समाप्त होने पर क्लाइंट बंद करें।

वेबसाइट का वास्तविक URL अनुरोध पर सामान्य रूप से रखें। प्रॉक्सी प्रमाणीकरण के बिना अनुमत सार्वजनिक साइट अनुरोधों के लिए SOCKS प्रॉक्सी सूची उम्मीदवार पते देती है; वह SOCKS संस्करण चुनें जिसे वास्तविक रनटाइम समर्थित करता है। SOCKS पता उस तक पहुँचने के लिए उपयोग किए जाने वाले परिवहन को कॉन्फ़िगर करता है; यह HttpHost के रूप में दिया गया HTTP फ़ॉरवर्ड-प्रॉक्सी रूट नहीं है।

ये इस मैनेजर के लिए डिफ़ॉल्ट सॉकेट सेटिंग्स हैं। प्रति-रूट SocketConfig रिज़ॉल्वर का उपयोग करने वाले एप्लिकेशन को वांछित SOCKS सेटिंग उस नीति के माध्यम से लागू करनी चाहिए। उदाहरण कनेक्शन मैनेजर की सामान्य गंतव्य DNS नीति बनाए रखता है; दूरस्थ नाम रिज़ॉल्यूशन के लिए अलग से सत्यापित कॉन्फ़िगरेशन आवश्यक है।

संबंधित लेख