Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Membetulkan Ralat 'Sambungan asas telah ditutup' dengan Pengesahan Asas HttpWebRequest?
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!