Apabila WinHTTP Bergilir antara 407 dan 401
Kekalkan keadaan pengesahan proksi yang dipilih dan gunakannya semula sebelum cuba lagi, sambil mengendalikan cabaran destinasi secara berasingan.
Permintaan WinHTTP mengesahkan diri dengan proksi, menerima 401 daripada laman web, kemudian mendapat 407 lagi pada penghantaran seterusnya. Proksi dan laman web mempunyai keadaan pengesahan berasingan, dan laluan penghantaran semula perlu mengekalkan kedua-duanya.
Contoh pengesahan WinHTTP asli Microsoft menyimpan skema proksi yang dipilih dalam pemboleh ubah dan menggunakan semula akaun proksi sebelum setiap WinHttpSendRequest selepas skema itu dipilih.
- Hantar permintaan dan periksa respons.
- Untuk 407, tanya skema yang ditawarkan dan ingat skema proksi yang dipilih.
- Sebelum menghantar semula, panggil WinHttpSetCredentials untuk WINHTTP_AUTH_TARGET_PROXY dengan skema dan akaun itu.
- Untuk 401 daripada destinasi, dapatkan skemanya dan tetapkan kelayakan pelayannya sambil mengekalkan keadaan proksi yang diingati untuk penghantaran seterusnya.
Contoh itu menyebut secara khusus pengesahan semula selepas cabaran pelayan atau ubah hala sebagai sebab untuk menggunakan semula kelayakan proksi. Meletakkan panggilan hanya dalam cabang 407 pertama boleh membiarkan laluan cubaan semula yang lain tanpa persediaan yang dijangka.
Periksa setiap hasil API dan hadkan kegagalan berulang. Contoh ringkas Microsoft menjejak status sebelumnya, manakala dasar cubaan semula pengeluaran juga patut mengenali urutan berselang yang berulang.
Jika pengguna memberikan akaun pengganti selepas kegagalan, kemas kini nilai yang digunakan oleh laluan penghantaran semula itu. WinHttpSetCredentials berskop permintaan; ia bukan stor kata laluan seluruh proses yang kandungannya diganti untuk semua permintaan masa hadapan.