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 중국어 웹사이트의 기타 관련 기사를 참조하세요!