Go で HTTP Get 帯域幅を制限する方法
Go の初心者として、消費される帯域幅を制御する必要があるシナリオに遭遇する可能性があります。 http.Get() リクエストによって。一般的な解決策の 1 つは、mxk/go1/flowcontrol などのサードパーティ パッケージを利用することです。ただし、基礎となるメカニズムをより深く理解するために、この記事では簡単なカスタム アプローチを提供します。
帯域幅を制限するには、HTTP 応答本文からデータを読み取る速度を制限する必要があります。提供されたコード スニペットでは:
<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>
2 つの変数を定義します:
メイン関数は次の手順を実行します。
このシンプルなアプローチにより、HTTP GET リクエストの帯域幅を制限する柔軟な方法が提供されます。 。必要に応じてデータチャンクとタイムラプスを調整して、目的の帯域幅制限を達成できます。
以上がGo で HTTP Get 帯域幅を制限する方法: カスタム アプローチ?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。