Poté, co požadavek WinHTTP obdrží 407, použijte WinHttpQueryAuthSchemes k prozkoumání nabízených metod a vyberte tu, kterou podporuje klient i účet. Nastavte přihlašovací údaje na tento požadavek:

WinHttpSetCredentials(
    requestHandle,
    WINHTTP_AUTH_TARGET_PROXY,
    selectedScheme,
    proxyUser,
    proxyPassword,
    nullptr);

Poslední rezervovaný argument musí být null. Zkontrolujte logický výsledek a při selhání GetLastError. Úspěch znamená, že API nastavení přijalo, ne že proxy přijala přihlášení.

Odešlete znovu řízeným ověřovacím tokem a prozkoumejte odpověď. Omezte opakování; již spotřebovaný tok těla požadavku musí být znovu přehratelný, pokud se operace opakuje. Odpověď 401 od cíle používá WINHTTP_AUTH_TARGET_SERVER, na rozdíl od tohoto cíle proxy.

Tyto přihlašovací údaje platí pro jediný požadavek. WinHTTP z nich nedělá obecné úložiště přihlašovacích údajů pro pozdější požadavky. Znovu použité ověřené spojení může dočasně skrýt další výzvu, takže aplikace musí i nadále zvládat budoucí výzvy.

Udržujte volbu proxy odděleně. Řetězec adresy s přihlašovacími údaji nenahrazuje toto API handle požadavku, stejně jako úspěšné dosažení koncového bodu nedokončuje ověření.

Související články