Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Mendapatkan URL Akhir Selepas Ubah Hala dalam `http.Client` Go?

Bagaimana untuk Mendapatkan URL Akhir Selepas Ubah Hala dalam `http.Client` Go?

Susan Sarandon
Susan Sarandonasal
2024-11-16 18:07:02324semak imbas

How to Get the Final URL After Redirects in Go's `http.Client`?

Mengekstrak URL Akhir Selepas Ubah Hala dalam Http.Go

Semasa menggunakan http.NewRequest untuk membuat permintaan HTTP, anda mungkin menghadapi keperluan untuk ekstrak rentetan pertanyaan daripada URL akhir selepas sebarang ubah hala. Objek Respons tidak semestinya memberikan akses kepada URL akhir.

Untuk mendapatkan semula URL selepas ubah hala:

  1. Buat fungsi tanpa nama dalam panggilan balik CheckRedirect.
  2. Dalam fungsi tanpa nama, tetapkan pembolehubah lastUrlQuery kepada RequestURI() permintaan diubah hala.
  3. Kembali sifar untuk membenarkan ubah hala.

Berikut ialah coretan kod yang menunjukkan pendekatan ini:

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)

Dengan menggunakan teknik ini, anda boleh menangkap URL akhir selepas semua ubah hala berlaku, membolehkan anda mengakses rentetan pertanyaan dan maklumat lain dari destinasi akhir.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan URL Akhir Selepas Ubah Hala dalam `http.Client` Go?. 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