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-ін алмастырмайды, дәл сол сияқты соңғы нүктеге сәтті жету аутентификацияны аяқтамайды.