Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Membetulkan Ralat 'Sambungan asas telah ditutup' dengan Pengesahan Asas HttpWebRequest?

Bagaimana untuk Membetulkan Ralat 'Sambungan asas telah ditutup' dengan Pengesahan Asas HttpWebRequest?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-10 19:43:12535semak imbas

How to Fix

Menyelesaikan Isu Pengesahan Asas HttpWebRequest

Artikel ini menangani masalah biasa yang dihadapi apabila menggunakan HttpWebRequest dengan pengesahan asas: "Sambungan asas telah ditutup: Ralat yang tidak dijangka berlaku pada penghantaran." Ralat ini selalunya timbul daripada konflik dengan pengendalian pengesahan lalai.

Penyelesaian adalah untuk memintas mekanisme lalai dan terus menguruskan pengepala Authorization. Pengepala ini memerlukan kaedah pengesahan ("Asas") dan bukti kelayakan berkod base64.

Berikut ialah cara untuk melaksanakan perkara ini:

<code class="language-csharp">var username = "abc";
var password = "123";
string encoded = Convert.ToBase64String(Encoding.GetEncoding("ISO-8859-1")
                                  .GetBytes(username + ":" + password));
httpWebRequest.Headers.Add("Authorization", "Basic " + encoded);</code>

Coretan kod ini mengambil nama pengguna dan kata laluan, mengekodnya menggunakan base64 dengan pengekodan ISO-8859-1 (untuk memastikan keserasian dengan pelayan), dan kemudian menambah rentetan yang terhasil pada pengepala Authorization HttpWebRequest. Ini membolehkan permintaan untuk mengesahkan dengan betul, menghalang penutupan sambungan dan membolehkan komunikasi yang berjaya. Penggunaan pengekodan ISO-8859-1 adalah penting untuk menyelesaikan banyak kegagalan pengesahan. Dengan menetapkan pengepala secara manual, aplikasi mengelakkan potensi isu dengan proses pengesahan lalai.

Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat 'Sambungan asas telah ditutup' dengan Pengesahan Asas HttpWebRequest?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn