Saat WinHTTP Bergantian antara 407 dan 401
Pertahankan status autentikasi proxy yang dipilih dan terapkan ulang sebelum mencoba lagi, sambil menangani tantangan tujuan secara terpisah.
Permintaan WinHTTP diautentikasi ke proxy, menerima 401 dari situs web, lalu mendapat 407 lain pada pengiriman berikutnya. Proxy dan situs web memiliki status autentikasi terpisah, dan jalur pengiriman ulang perlu mempertahankan keduanya.
Contoh autentikasi WinHTTP asli dari Microsoft menyimpan skema proxy yang dipilih dalam variabel dan menerapkan ulang akun proxy sebelum setiap WinHttpSendRequest setelah skema itu dipilih.
- Kirim permintaan dan periksa responsnya.
- Untuk 407, tanyakan skema yang ditawarkan dan ingat skema proxy yang dipilih.
- Sebelum mengirim ulang, panggil WinHttpSetCredentials untuk WINHTTP_AUTH_TARGET_PROXY dengan skema dan akun itu.
- Untuk 401 dari tujuan, dapatkan skemanya dan atur kredensial servernya sambil mempertahankan status proxy yang diingat untuk pengiriman berikutnya.
Contoh tersebut secara khusus menyebut autentikasi ulang setelah tantangan server atau pengalihan sebagai alasan menerapkan ulang kredensial proxy. Menempatkan panggilan hanya di cabang 407 pertama dapat membuat jalur percobaan ulang lain tanpa penyiapan yang diharapkan.
Periksa setiap hasil API dan batasi kegagalan berulang. Contoh ringkas Microsoft melacak status sebelumnya, sedangkan kebijakan percobaan ulang produksi juga harus mengenali urutan bergantian yang berulang.
Jika pengguna memberikan akun pengganti setelah kegagalan, perbarui nilai yang digunakan jalur pengiriman ulang tersebut. WinHttpSetCredentials berlaku per permintaan; itu bukan penyimpanan kata sandi tingkat proses yang isinya diganti untuk semua permintaan mendatang.