Responder a um desafio de proxy do WinHTTP no handle da solicitação
Use WinHttpSetCredentials com o destino de autenticação do proxy e um esquema oferecido compatível, e então repita a solicitação deliberadamente.
Depois que uma solicitação WinHTTP recebe 407, use WinHttpQueryAuthSchemes para inspecionar os métodos oferecidos e escolher um compatível com o cliente e a conta. Defina as credenciais nessa solicitação:
WinHttpSetCredentials(
requestHandle,
WINHTTP_AUTH_TARGET_PROXY,
selectedScheme,
proxyUser,
proxyPassword,
nullptr);
O último argumento reservado deve ser null. Verifique o resultado booleano e, em caso de falha, GetLastError. Sucesso significa que a API aceitou a configuração, não que o proxy aceitou o login.
Reenvie por meio de um fluxo de autenticação controlado e inspecione a resposta. Limite as novas tentativas; um fluxo de corpo de solicitação já consumido deve poder ser reproduzido se a operação for repetida. Um 401 do destino usa WINHTTP_AUTH_TARGET_SERVER, diferente deste alvo de proxy.
Essas credenciais valem para uma única solicitação. O WinHTTP não as transforma em um armazenamento geral de credenciais para solicitações posteriores. Conexões autenticadas reutilizadas podem ocultar temporariamente outro desafio, então o aplicativo ainda deve tratar desafios futuros.
Mantenha a seleção de proxy separada. Uma cadeia de endereço com credenciais não substitui esta API de handle de solicitação, assim como alcançar o endpoint com sucesso não conclui a autenticação.