అభ్యర్థన హ్యాండిల్పై 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ని భర్తీ చేయదు, ఎండ్పాయింట్ను విజయవంతంగా చేరుకోవడం ప్రామాణీకరణను పూర్తి చేయనట్లే.