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

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

Barbara Streisand
Barbara Streisandasal
2024-11-21 11:02:11191semak imbas

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)

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!

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