Rumah > pembangunan bahagian belakang > Golang > Mengapakah Pengesahan HTTP Go Gagal dengan 'skim protokol tidak disokong '''?

Mengapakah Pengesahan HTTP Go Gagal dengan 'skim protokol tidak disokong '''?

Barbara Streisand
Lepaskan: 2024-11-21 11:02:11
asal
245 orang telah melayarinya

Why Does Go HTTP Authentication Fail with

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)
Salin selepas log masuk

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)
Salin selepas log masuk

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
}
Salin selepas log masuk

Sertakan dasar ubah hala tersuai ke dalam pelanggan anda:

client := &http.Client{
  CheckRedirect: redirectPolicyFunc,
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan