Pengesahan HTTP Asas dalam Go: Menyelesaikan Kod Ralat
Dalam mencuba pengesahan HTTP asas dengan Go, anda mungkin menghadapi mesej ralat "tidak disokong skema protokol ''". Mari kita mendalami kod dan terokai sebab isu ini timbul.
Kod yang bermasalah adalah seperti berikut:
func basicAuth() string { req, err := http.NewRequest("GET", "mydomain.example", nil)
Ralat berpunca daripada meninggalkan "http://" atau "https: //" awalan dalam URL. Untuk menangani perkara ini, ubah suai kod kepada:
func basicAuth() string { req, err := http.NewRequest("GET", "http://mydomain.example", nil)
Pastikan URL yang anda berikan termasuk skema protokol yang betul, sama ada "http" atau "https".
Gotcha Tambahan : Ubah hala
Berhati-hati tentang kemungkinan perangkap yang melibatkan ubah hala. Go-lang membuang pengepala tertentu semasa ubah hala. Untuk mengatasinya, laksanakan fungsi dasar ubah hala tersuai yang menambahkan semula pengepala:
func redirectPolicyFunc(req *http.Request, via []*http.Request) error{ req.Header.Add("Authorization","Basic " + basicAuth("username1","password123")) return nil }
Sertakan dasar ubah hala tersuai ke dalam pelanggan anda:
client := &http.Client{ CheckRedirect: redirectPolicyFunc, }
Dengan mengikuti pelarasan ini, anda boleh berjaya melaksanakan pengesahan HTTP asas dalam Go dan mengendalikan kemungkinan ubah hala tanpa kehilangan pengepala kebenaran anda.
Atas ialah kandungan terperinci Mengapakah Pengesahan HTTP Go Gagal dengan 'skim protokol tidak disokong '''?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!