Wakati WinHTTP inapobadilisha kati ya 407 na 401
Hifadhi hali ya uthibitishaji ya proksi iliyochaguliwa na uitumie tena kabla ya kujaribu tena, huku ukishughulikia changamoto tofauti ya lengwa.
Ombi la WinHTTP hujithibitisha kwa proksi, hupokea 401 kutoka kwa tovuti, kisha hupata 407 nyingine katika kutuma kunakofuata. Proksi na tovuti zina hali tofauti za uthibitishaji, na njia ya kutuma tena inahitaji kuhifadhi zote mbili.
Mfano asilia wa uthibitishaji wa WinHTTP wa Microsoft huhifadhi mpango wa proksi uliochaguliwa katika kigezo na hutumia tena akaunti ya proksi kabla ya kila WinHttpSendRequest baada ya mpango huo kuchaguliwa.
- Tuma ombi na uchunguze jibu.
- Kwa 407, uliza mipango inayotolewa na ukumbuke mpango wa proksi uliochaguliwa.
- Kabla ya kutuma tena, ita WinHttpSetCredentials kwa WINHTTP_AUTH_TARGET_PROXY na mpango na akaunti hiyo.
- Kwa 401 kutoka lengwa, pata mpango wake na uweke hati za kuthibitisha za seva huku ukihifadhi hali ya proksi iliyokumbukwa kwa kutuma kunakofuata.
Mfano unataja mahususi uthibitishaji upya baada ya changamoto ya seva au uelekezaji upya kama sababu ya kutumia tena hati za proksi. Kuweka wito katika tawi la kwanza la 407 pekee kunaweza kuacha njia nyingine ya kujaribu tena bila usanidi unaotarajiwa.
Angalia kila tokeo la API na uweke mipaka kwa kushindwa kunakorudia. Mfano mfupi wa Microsoft hufuatilia hali iliyotangulia, ilhali sera ya kujaribu tena ya uzalishaji inapaswa pia kutambua mfuatano unaobadilika unaorudia.
Ikiwa mtumiaji atatoa akaunti mbadala baada ya kushindwa, sasisha thamani zinazotumiwa na njia hiyo ya kutuma tena. WinHttpSetCredentials inahusiana na ombi; si hifadhi ya nenosiri ya kiwango cha mchakato ambayo maudhui yake hubadilishwa kwa maombi yote yajayo.