Pengesahan Asas HTTP dalam Go: Menyelesaikan Masalah Ralat Biasa
Semasa cuba melaksanakan pengesahan HTTP asas dengan kod yang disediakan, ralat timbul: "skim protokol tidak disokong ''". Ini boleh dikesan kembali kepada kesilapan dalam kod semasa membuat objek permintaan.
Untuk menangani ralat ini, pastikan skema yang betul dinyatakan dalam URL permintaan. Contoh yang diberikan cuba membuat permintaan kepada "mydomain.example" tanpa menyatakan skema protokol, yang membawa kepada ralat.
Untuk membetulkannya, ubah suai kod untuk menentukan skema HTTPS secara eksplisit seperti berikut:
req, err := http.NewRequest("GET", "https://mydomain.example", nil)
Selain itu, perlu diperhatikan bahawa klien HTTP Go mungkin menghadapi isu lain apabila mengendalikan ubah hala. Secara lalai, pelanggan tidak mengekalkan pengepala tersuai, termasuk pengepala Kebenaran Asas, semasa ubah hala.
Untuk memintas kelakuan ini, anda boleh menentukan fungsi dasar ubah hala tersuai yang secara eksplisit menambahkan pengepala Kebenaran kembali semasa ubah hala. Ini memastikan bahawa bukti kelayakan pengesahan dikekalkan sepanjang proses ubah hala.
Berikut ialah contoh fungsi dasar ubah hala tersuai:
func redirectPolicyFunc(req *http.Request, via []*http.Request) error { req.Header.Add("Authorization", "Basic " + basicAuth(username, password)) return nil }
Dengan menggunakan dasar tersuai ini dalam klien HTTP, anda memastikan bahawa pengepala Kebenaran Asas dikendalikan dengan betul semasa ubah hala, membenarkan pengesahan yang lancar.
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat 'skema protokol tidak disokong ''' dalam Pengesahan Asas Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!