Menghadkan Lebar Jalur Permintaan HTTP GET dalam Go
Sebagai orang baru untuk Go, seseorang mungkin menghadapi keperluan untuk menyekat penggunaan lebar jalur http .Dapatkan() permintaan. Walaupun pakej pihak ketiga menawarkan pembalut yang mudah, artikel ini menyelami jauh ke dalam mekanisme asas pengehadan lebar jalur.
Mengakses Pembaca HTTP
Untuk mengawal lebar jalur, mengakses pembaca HTTP asas adalah penting. Dalam Go, pembaca ini dibenamkan dalam objek http.Response.
Penghadan Lebar Jalur
Fungsi io.CopyN dalam Go membolehkan penyalinan data terkawal. Dengan menyatakan bilangan bait (datachunk) dan selang masa (timelapse), pembangun boleh mendikit penggunaan lebar jalur dengan berkesan.
Contoh Pelaksanaan
Coretan kod berikut menunjukkan cara mengehadkan lebar jalur dalam Go:
<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>
Dalam contoh ini, lebar jalur dihadkan kepada bait datachunk setiap saat selang masa, dengan berkesan mengehadkan kadar pemindahan. Proses ini berulang sehingga respons HTTP diterima sepenuhnya.
Atas ialah kandungan terperinci Bagaimana untuk Mengehadkan Lebar Lebar Permintaan HTTP GET dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!