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