在Go 中控制HTTP 請求的頻寬
問題:
問題:作為Go 新手,如何限制HTTP GET 請求期間的頻寬消耗?
背景:
分析:您發現了mxk/go1/flowcontrol 庫,提供對帶寬使用的低階控制。但是,將其與 http.Get() 方法整合需要了解如何存取底層讀取器。
解決方案:<code class="go">package main import ( "io" "net/http" "os" "time" ) // Set data chunk size (in bytes) and time interval (in seconds) var datachunk int64 = 500 var timelapse time.Duration = 1 func main() { // Initiate HTTP GET request response, _ := http.Get("http://google.com") // Read response in controlled intervals for range time.Tick(timelapse * time.Second) { // Read a chunk of data into stdout _, err := io.CopyN(os.Stdout, response.Body, datachunk) if err != nil { break } } }</code>
雖然第三方包中存在方便的包裝器,了解頻寬控制的基本原理可能會很有啟發。以下是一個簡單的實現,說明了這個方法:
以上是如何在 Go 中限制 HTTP GET 請求期間的頻寬使用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!