अनुरोध हैंडल पर WinHTTP प्रॉक्सी चुनौती का उत्तर देना
प्रॉक्सी प्रमाणीकरण लक्ष्य और समर्थित प्रस्तावित स्कीम के साथ WinHttpSetCredentials का उपयोग करें, फिर अनुरोध को जानबूझकर दोबारा भेजें।
WinHTTP अनुरोध को 407 मिलने के बाद, प्रस्तावित विधियों की जाँच के लिए WinHttpQueryAuthSchemes का उपयोग करें और ऐसी विधि चुनें जिसे क्लाइंट और खाता दोनों समर्थन दें। उसी अनुरोध पर क्रेडेंशियल सेट करें:
WinHttpSetCredentials(
requestHandle,
WINHTTP_AUTH_TARGET_PROXY,
selectedScheme,
proxyUser,
proxyPassword,
nullptr);
अंतिम आरक्षित आर्ग्युमेंट null होना चाहिए। बूलियन परिणाम और विफलता पर GetLastError जाँचें। सफलता का अर्थ है कि API ने सेटिंग स्वीकार की, यह नहीं कि प्रॉक्सी ने लॉगिन स्वीकार किया।
नियंत्रित प्रमाणीकरण प्रवाह के माध्यम से फिर से भेजें और प्रतिक्रिया की जाँच करें। पुनःप्रयास सीमित रखें; यदि क्रिया दोहराई जाती है तो पहले से उपभोग की गई अनुरोध-बॉडी स्ट्रीम फिर से चलाने योग्य होनी चाहिए। गंतव्य का 401 WINHTTP_AUTH_TARGET_SERVER का उपयोग करता है, जो इस प्रॉक्सी लक्ष्य से भिन्न है।
ये क्रेडेंशियल केवल एक अनुरोध पर लागू होते हैं। WinHTTP इन्हें बाद के अनुरोधों के लिए सामान्य क्रेडेंशियल भंडार नहीं बनाता। पुनः उपयोग किए गए प्रमाणित कनेक्शन किसी अन्य चुनौती को अस्थायी रूप से छिपा सकते हैं, इसलिए एप्लिकेशन को भविष्य की चुनौतियाँ भी संभालनी होंगी।
प्रॉक्सी चयन को अलग रखें। क्रेडेंशियल वाली पता-श्रृंखला इस अनुरोध-हैंडल API का स्थान नहीं लेती, जैसे एंडपॉइंट तक सफलतापूर्वक पहुँचना प्रमाणीकरण पूरा नहीं करता।