Minta kawalan ubah hala dan amalan terbaik untuk http.Transport dalam bahasa Go
1 Pengenalan
Apabila menggunakan bahasa Go untuk membangunkan permintaan rangkaian atau perkhidmatan Http, kami sering menghadapi permintaan ubah hala. Secara lalai, http.Transport dalam pustaka standard Go mengendalikan pengalihan permintaan secara automatik, tetapi kadangkala kita perlu menyesuaikan tingkah laku pengalihan untuk memenuhi keperluan khas. Artikel ini akan memperkenalkan cara menggunakan http.Transport untuk mengawal ubah hala dan menyediakan beberapa amalan terbaik untuk rujukan anda. . Ini dilaksanakan oleh fungsi CheckRedirect dalam http.Transport Fungsi CheckRedirect lalai akan mengembalikan ralat sifar apabila menghadapi sebarang ubah hala, yang membolehkan http.Transport mengikuti ubah hala secara automatik.
Tingkah laku ubah hala tersuai
Kami boleh mengawal tingkah laku ubah hala dengan menyesuaikan fungsi CheckRedirect. Fungsi CheckRedirect ditakrifkan seperti berikut:func(req *http.Request, via []*http.Request) error
package main import ( "net/http" "fmt" ) func main() { client := &http.Client{ CheckRedirect: func(req *http.Request, via []*http.Request) error { if len(via) >= 3 { return fmt.Errorf("stopped after %d redirects", len(via)) } return nil }, } resp, err := client.Get("http://example.com") // 发送一个GET请求 if err != nil { fmt.Println("请求发生错误:", err) return } defer resp.Body.Close() fmt.Println("响应码:", resp.StatusCode) }
Dalam kod contoh di atas, apabila bilangan lompatan mencapai 3 kali, fungsi CheckRedirect mengembalikan a non-null error , menunjukkan bahawa ubah hala tidak akan diikuti lagi. Dengan cara ini, kita boleh mengawal bilangan lompatan secara fleksibel untuk mengelakkan lompatan tidak terhingga.
3. Amalan Terbaik
Dalam projek sebenar, kita harus memberi perhatian kepada perkara berikut apabila menggunakan http.Transport untuk membuat permintaan rangkaian:Tetapkan had lompatan yang munasabah
Lompatan yang berlebihan boleh menyebabkan kehilangan prestasi atau perangkap Gelung ubah hala tanpa had . Dalam keadaan biasa, kita harus menetapkan had yang munasabah pada bilangan lompatan berdasarkan keperluan sebenar.
Mengendalikan gelung ubah hala
Atas ialah kandungan terperinci Minta kawalan ubah hala dan amalan terbaik untuk http.Transport dalam bahasa Go. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!