Отговор на предизвикателство на 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 за манипулатор на заявка, точно както успешното достигане до крайната точка не завършва удостоверяването.