Пасля таго як запыт WinHTTP атрымае 407, выкарыстайце WinHttpQueryAuthSchemes, каб прагледзець прапанаваныя метады і выбраць той, які падтрымліваюць кліент і ўліковы запіс. Усталюйце ўліковыя даныя для гэтага запыту:

WinHttpSetCredentials(
    requestHandle,
    WINHTTP_AUTH_TARGET_PROXY,
    selectedScheme,
    proxyUser,
    proxyPassword,
    nullptr);

Апошні зарэзерваваны аргумент павінен быць null. Праверце булевы вынік і пры няўдачы GetLastError. Поспех азначае, што API прыняў наладу, а не што проксі прыняў уваход.

Адпраўце зноў праз кантраляваны паток аўтэнтыфікацыі і прагледзьце адказ. Абмяжуйце паўторы; ужо спажыты паток цела запыту павінен быць прыдатным для паўторнага прайгравання, калі аперацыя паўтараецца. Адказ 401 ад пункту прызначэння выкарыстоўвае WINHTTP_AUTH_TARGET_SERVER, што адрозніваецца ад гэтай мэты проксі.

Гэтыя ўліковыя даныя дзейнічаюць для аднаго запыту. WinHTTP не робіць іх агульным сховішчам уліковых даных для наступных запытаў. Паўторна выкарыстаныя аўтэнтыфікаваныя злучэнні могуць часова хаваць чарговы выклік, таму праграма павінна апрацоўваць будучыя выклікі.

Трымайце выбар проксі асобна. Радок адраса з уліковымі данымі не замяняе гэты API дэскрыптара запыту, гэтак жа як паспяховае дасягненне канчатковай кропкі не завяршае аўтэнтыфікацыю.

Падобныя артыкулы