Menjawab cabaran proksi WinHTTP pada pemegang permintaan
Gunakan WinHttpSetCredentials dengan sasaran pengesahan proksi dan skema yang ditawarkan serta disokong, kemudian cuba semula permintaan secara sengaja.
Selepas permintaan WinHTTP menerima 407, gunakan WinHttpQueryAuthSchemes untuk memeriksa kaedah yang ditawarkan dan memilih satu yang disokong oleh klien dan akaun. Tetapkan kelayakan pada permintaan itu:
WinHttpSetCredentials(
requestHandle,
WINHTTP_AUTH_TARGET_PROXY,
selectedScheme,
proxyUser,
proxyPassword,
nullptr);
Argumen simpanan terakhir mesti null. Semak hasil Boolean dan, jika gagal, GetLastError. Kejayaan bermaksud API menerima tetapan itu, bukan proksi menerima log masuk.
Hantar semula melalui aliran pengesahan terkawal dan periksa respons. Hadkan cubaan semula; aliran badan permintaan yang telah digunakan mesti boleh dimainkan semula jika operasi diulang. Respons 401 daripada destinasi menggunakan WINHTTP_AUTH_TARGET_SERVER, berbeza daripada sasaran proksi ini.
Kelayakan ini terpakai untuk satu permintaan sahaja. WinHTTP tidak menjadikannya storan kelayakan umum untuk permintaan kemudian. Sambungan disahkan yang digunakan semula boleh menyembunyikan cabaran lain buat sementara waktu, jadi aplikasi masih perlu mengendalikan cabaran masa depan.
Asingkan pemilihan proksi. Rentetan alamat yang membawa kelayakan tidak menggantikan API pemegang permintaan ini, sama seperti berjaya mencapai titik akhir tidak melengkapkan pengesahan.