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 प्रमाणीकरण पेरा, आणि पुढील क्रियेला त्याच्या कनेक्शनची गरज पडण्यापूर्वी प्रत्येक प्रतिसाद वापरा किंवा सोडवा. उपयुक्त परिणाम म्हणजे विनंती प्रत्यक्षात पाठवणाऱ्या अंमलबजावणीशी जोडलेले खाते आणि कॅश केलेली योजना.