Cara Mengehadkan HTTP Mendapat Lebar Jalur dalam Go
Sebagai orang baru dalam Go, anda mungkin menghadapi senario di mana anda perlu mengawal lebar jalur yang digunakan oleh permintaan http.Get() anda. Satu penyelesaian yang popular ialah menggunakan pakej pihak ketiga seperti mxk/go1/flowcontrol. Walau bagaimanapun, untuk pemahaman yang lebih mendalam tentang mekanisme asas, artikel ini menyediakan pendekatan tersuai yang mudah.
Untuk mengehadkan lebar jalur, kami perlu mengehadkan kadar data dibaca daripada badan respons HTTP. Dalam coretan kod yang disediakan:
<code class="go">package main import ( "io" "net/http" "os" "time" ) var datachunk int64 = 500 //Bytes var timelapse time.Duration = 1 //per seconds func main() { responce, _ := http.Get("http://google.com") for range time.Tick(timelapse * time.Second) { _, err := io.CopyN(os.Stdout, responce.Body, datachunk) if err != nil { break } } }</code>
Kami mentakrifkan dua pembolehubah:
Fungsi utama melaksanakan langkah berikut:
Pendekatan mudah ini menyediakan cara yang fleksibel untuk mengehadkan lebar jalur permintaan HTTP GET anda . Anda boleh melaraskan datachunk dan timelapse mengikut keperluan untuk mencapai sekatan lebar jalur yang diingini.
Atas ialah kandungan terperinci Bagaimana untuk Mengehadkan HTTP Mendapat Lebar Jalur dalam Go: Pendekatan Tersuai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!