Pagsagot sa hamon ng WinHTTP proxy sa handle ng kahilingan
Gamitin ang WinHttpSetCredentials kasama ang target ng pagpapatunay ng proxy at sinusuportahang iniaalok na scheme, pagkatapos ay muling subukan ang kahilingan nang sadya.
Matapos makatanggap ng 407 ang isang kahilingang WinHTTP, gamitin ang WinHttpQueryAuthSchemes upang suriin ang mga iniaalok na paraan at pumili ng isang sinusuportahan ng kliyente at ng account. Itakda ang mga kredensyal sa kahilingang iyon:
WinHttpSetCredentials(
requestHandle,
WINHTTP_AUTH_TARGET_PROXY,
selectedScheme,
proxyUser,
proxyPassword,
nullptr);
Ang huling nakalaang argumento ay dapat null. Suriin ang Boolean na resulta at, kapag nabigo, ang GetLastError. Ang tagumpay ay nangangahulugang tinanggap ng API ang setting, hindi na tinanggap ng proxy ang pag-log in.
Muling ipadala sa pamamagitan ng kontroladong daloy ng pagpapatunay at suriin ang tugon. Limitahan ang mga pagtatangka; ang naubos nang stream ng katawan ng kahilingan ay dapat maipalabas muli kung uulitin ang operasyon. Ang 401 mula sa destinasyon ay gumagamit ng WINHTTP_AUTH_TARGET_SERVER, naiiba sa target na proxy na ito.
Ang mga kredensyal na ito ay nalalapat sa isang kahilingan lamang. Hindi ginagawa ng WinHTTP na pangkalahatang imbakan ng kredensyal ang mga ito para sa mga susunod na kahilingan. Ang mga muling ginamit na napatunayang koneksyon ay maaaring pansamantalang magtago ng isa pang hamon, kaya kailangan pa ring pangasiwaan ng application ang mga hamon sa hinaharap.
Panatilihing hiwalay ang pagpili ng proxy. Ang string ng address na may kredensyal ay hindi pumapalit sa API ng handle ng kahilingang ito, gayundin ang matagumpay na pag-abot sa endpoint ay hindi nagtatapos ng pagpapatunay.