Apache HttpClient 4.2: अनुरोध सन्दर्भमा प्रोक्सी AuthCache राख्नुहोस्
HttpClient 4.2 प्रोक्सीको Basic-auth क्यासलाई पछिका अनुरोधहरूले प्रयोग गर्ने त्यही कार्यान्वयन सन्दर्भमा राख्नुहोस्।
पुरानो HttpClient 4.2.2 अनुप्रयोगमा प्रमाण-पत्र प्रदायक र प्रमाणीकरण क्यासले फरक काम गर्छन्। प्रदायकले खाता दिन्छ; क्यासले जानाजान पहिले नै कन्फिगर गरिएको प्रमाणीकरण योजनालाई अर्को चुनौती आउनु अघि सहभागी हुन दिन्छ।
पुरानो प्रोक्सी-विशेष BasicScheme कन्स्ट्रक्टरका लागि, हस्तान्तरण यस्तो देखिन्छ:
AuthCache cache = new BasicAuthCache();
cache.put(proxy, new BasicScheme(ChallengeState.PROXY));
HttpContext context = new BasicHttpContext();
context.setAttribute(ClientContext.AUTH_CACHE, cache);
HttpResponse response = client.execute(request, context);यो खण्डले client सँग पहिले नै मिल्ने प्रोक्सी मार्ग र प्रमाण-पत्र प्रदायक रहेको मान्छ। proxy त्यसको HttpHost हो, र request वास्तविक कार्य हो। क्यास कुञ्जीले त्यो मध्यस्थलाई वर्णन गर्नुपर्छ, गन्तव्य वेबसाइटलाई होइन।
भरिएको सन्दर्भ execute लाई दिनुहोस्। त्यसलाई बनाएर अनि अर्को सन्दर्भ सिर्जना गर्ने ओभरलोड प्रयोग गर्दा क्यास आदान-प्रदान बाहिर रहन्छ। त्यो प्रमाणीकरण अवस्था साझा गर्नुपर्ने पछिका कार्यहरूका लागि हरेक पटक खाली सन्दर्भ पुनर्निर्माण गर्नुको सट्टा उपयुक्त सन्दर्भ राख्नुहोस्।
स्पष्ट PROXY अवस्था यही पुरानो API को हो। TARGET गन्तव्यको प्रमाणीकरणसँग सम्बन्धित छ। नयाँ HttpClient पुस्ताहरूले प्याकेज र प्रमाणीकरण API परिवर्तन गरेका छन्, त्यसैले यसलाई विद्यमान 4.2 कोडका लागि मर्मत मार्गदर्शनका रूपमा प्रयोग गर्नुहोस्, नयाँ client का लागि विधि नभई।
साधारण चुनौती-चालित आदान-प्रदान अझै सही हुन सक्छ। Basic प्रमाणीकरण जानिएको र इच्छित प्रोक्सीका लागि मात्र छर्नुहोस्, र अर्को कार्यलाई त्यसको जडान आवश्यक पर्नु अघि प्रत्येक प्रतिक्रिया उपभोग वा मुक्त गर्नुहोस्। उपयोगी परिणाम भनेको अनुरोध साँच्चै पठाउने कार्यान्वयनसँग जोडिएको खाता र क्यास गरिएको योजना हो।