درخواست ہینڈل پر 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 کا متبادل نہیں، جیسے اینڈ پوائنٹ تک کامیابی سے پہنچنا تصدیق مکمل نہیں کرتا۔