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>
説明:
このコードは、帯域幅を手動で制限する方法を示しています。 http.Get() メソッドのコア機能を維持しながら消費します。
以上がGo で HTTP GET リクエスト中の帯域幅の使用を制限する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。