WinHTTP-proxy kihívás megválaszolása a kéréskezelőn
Használja a WinHttpSetCredentials függvényt a proxy hitelesítési céljával és egy támogatott felkínált sémával, majd szándékosan próbálja újra a kérést.
Miután egy WinHTTP-kérés 407-et kap, a WinHttpQueryAuthSchemes segítségével vizsgálja meg a felkínált módszereket, és válasszon egyet, amelyet az ügyfél és a fiók is támogat. Állítsa be a hitelesítő adatokat azon a kérésen:
WinHttpSetCredentials(
requestHandle,
WINHTTP_AUTH_TARGET_PROXY,
selectedScheme,
proxyUser,
proxyPassword,
nullptr);
Az utolsó fenntartott argumentumnak null értékűnek kell lennie. Ellenőrizze a logikai eredményt, hiba esetén pedig a GetLastError értékét. A siker azt jelenti, hogy az API elfogadta a beállítást, nem azt, hogy a proxy elfogadta a bejelentkezést.
Küldje újra ellenőrzött hitelesítési folyamaton keresztül, és vizsgálja meg a választ. Korlátozza az ismétléseket; a már felhasznált kéréstest-folyamnak újrajátszhatónak kell lennie, ha a művelet megismétlődik. A cél 401 válasza a WINHTTP_AUTH_TARGET_SERVER értéket használja, ami eltér ettől a proxycéltól.
Ezek a hitelesítő adatok egyetlen kérésre érvényesek. A WinHTTP nem teszi őket általános hitelesítőadat-tárrá a későbbi kérésekhez. Az újrahasznosított hitelesített kapcsolatok ideiglenesen elrejthetnek egy másik kihívást, ezért az alkalmazásnak a jövőbeli kihívásokat is kezelnie kell.
Tartsa külön a proxy kiválasztását. A hitelesítő adatokat tartalmazó címkarakterlánc nem helyettesíti ezt a kéréskezelő API-t, ahogyan a végpont sikeres elérése sem fejezi be a hitelesítést.