Apache HttpClient 4 अनुप्रयोगमा HTTPS गन्तव्य भन्नाले प्रत्येक जडान TLS बाट सुरु हुन्छ भन्ने होइन। साधारण HTTP प्रोक्सीमा अति साधारण जडानबाट पुगिन्छ, त्यसपछि CONNECT ले सुरुङ खोल्छ र गन्तव्यतर्फ TLS तह बन्छ।

यदि अनुकूलित जडान प्रबन्धकले https मात्र दर्ता गर्छ भने पहिलो प्रोक्सी हप UnsupportedSchemeException: http protocol is not supported सँग असफल हुन सक्छ।

4.5 API का लागि, त्यो प्रबन्धक बनाउँदा दुवै फ्याक्ट्री समावेश गर्नुहोस्:

var registry = RegistryBuilder.<ConnectionSocketFactory>create()
    .register("http", PlainConnectionSocketFactory.getSocketFactory())
    .register("https", tlsFactory)
    .build();

var manager = new PoolingHttpClientConnectionManager(registry);
var client = HttpClients.custom()
    .setConnectionManager(manager)
    .setProxy(new HttpHost("proxy.example.net", 8080, "http"))
    .build();

tlsFactory अनुप्रयोगको विद्यमान SSLConnectionSocketFactory हो, यसको अभिप्रेत विश्वास र होस्टनाम जाँचसहित। देखाइएका प्रकारहरू Apache 4 का org.apache.http प्याकेजका हुन्। यो अंशले Java को स्थानीय चर प्रकार-अनुमान मान्दछ; पुरानो Java कोडले स्पष्ट प्रकार प्रयोग गर्न सक्छ।

सुधारिएको प्रबन्धकलाई अनुरोधका लागि वास्तवमै प्रयोग हुने क्लाइन्टमा जोड्नुहोस्। प्रोक्सी प्रमाणीकरण बिना अनुमत सार्वजनिक HTTPS अनुरोधका लागि, HTTP प्रोक्सी सूचीको HTTP प्रविष्टिले HttpHost को प्रोक्सी ठेगाना भर्न सक्छ। अर्को builder कन्फिगर गर्दा पहिले नै बनेको क्लाइन्ट अद्यावधिक हुँदैन।

builder को स्वामित्व पनि जाँच्नुहोस्: HttpClientBuilder ले स्पष्ट रूपमा दिइएको जडान प्रबन्धकले यसका छुट्टै SSL कन्फिगरेसन इनपुटहरूलाई अगाडि बढाउन सक्ने कुरा अभिलेख गर्छ। आवश्यक फ्याक्ट्रीहरू प्रबन्धकको दर्तामा राख्नुहोस्, पछिको setSSLContext कलले यसको भित्री भाग बदल्छ भनी मान्नुको सट्टा।

यो निदान स्थानीय स्किम दर्तासँग सम्बन्धित छ। प्रोक्सी प्रमाणीकरण चुनौती वा अस्वीकृत गन्तव्य पछिको, फरक नतिजा हो। ती प्रतिक्रियाहरू अन्वेषण गर्दा दुवै फ्याक्ट्री दर्ता कायम राख्नुहोस्।

सम्बन्धित लेखहरू