Menentukan URL Akhir selepas Lencongan di Golang
Dalam pakej net/http Golang, permintaan HTTP GET boleh menghadapi ubah hala, yang boleh membawa ke URL destinasi akhir yang berbeza daripada permintaan awal. Masalah ini menimbulkan persoalan: bagaimanakah kita boleh menentukan URL akhir yang dicapai selepas beberapa siri ubah hala tanpa menggunakan penyelesaian yang menyusahkan?
Penyelesaian
Bertentangan dengan andaian bahawa pendekatan hackish adalah perlu, penyelesaian yang bersih dan mudah wujud dalam objek Respons yang dikembalikan oleh operasi HTTP GET. Objek ini memegang objek Permintaan yang memulakan permintaan, yang menyediakan akses kepada URL akhir yang dilawati.
import ( "fmt" "log" "net/http" ) func main() { resp, err := http.Get("http://stackoverflow.com/q/16784419/727643") if err != nil { log.Fatalf("http.Get => %v", err.Error()) } // Function to retrieve the final URL finalURL := resp.Request.URL.String() fmt.Printf("The URL you ended up at is: %v", finalURL) }
Output:
The URL you ended up at is: http://stackoverflow.com/questions/16784419/in-golang-how-to-determine-the-final-url-after-a-series-of-redirects
Kaedah ini membolehkan pengambilan semula URL akhir dengan mudah selepas sebarang bilangan ubah hala. Tiada penyesuaian tambahan atau manipulasi pembolehubah global diperlukan, memastikan pelaksanaan yang bersih dan cekap.
Atas ialah kandungan terperinci Bagaimana untuk Menentukan URL Akhir Selepas Ubah Hala di Golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!