Cara Mendapatkan Kembali URL Akhir Selepas Ubah hala dalam http.NewRequest Go
Apabila membuat permintaan HTTP dengan http.NewRequest, anda mungkin menghadapi situasi di mana pelayan mengubah hala permintaan. Untuk mengekstrak rentetan pertanyaan daripada URL akhir, anda perlu mencari URL tempat permintaan akhirnya berakhir.
Walaupun kekurangan medan yang jelas dalam objek http.Response, terdapat cara untuk mendapatkan yang terakhir URL:
Menggunakan Fungsi Tanpa Nama untuk Semak Lencongan
Fungsi tanpa nama boleh digunakan untuk menangkap dan menyimpan URL ubah hala akhir. Berikut ialah contoh:
req, err := http.NewRequest("GET", URL, nil) cl := http.Client{} var lastUrlQuery string cl.CheckRedirect = func(req *http.Request, via []*http.Request) error { if len(via) > 10 { return errors.New("too many redirects") } lastUrlQuery = req.URL.RequestURI() return nil } resp, err := cl.Do(req) if err != nil { log.Fatal(err) } fmt.Printf("last url query is %v", lastUrlQuery)
Fungsi CheckRedirect yang diberikan kepada pelanggan membungkus mekanisme ubah hala cek lalai. Ia menyemak bilangan ubah hala dan menyimpan pertanyaan URL akhir dalam pembolehubah lastUrlQuery. Setelah pelaksanaan permintaan selesai, anda boleh mengakses URL akhir melalui lastUrlQuery.
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan URL Akhir Selepas Ubah Hala Menggunakan http.NewRequest Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!