Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Mendapatkan URL Akhir Selepas Ubah Hala Menggunakan http.NewRequest Go?

Bagaimana untuk Mendapatkan URL Akhir Selepas Ubah Hala Menggunakan http.NewRequest Go?

DDD
Lepaskan: 2024-11-23 13:14:14
asal
550 orang telah melayarinya

How to Get the Final URL After Redirects Using Go's http.NewRequest?

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

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!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan