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
Lepaskan: 2024-11-16 18:07:02
asal
337 orang telah melayarinya

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

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 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