Kontrolle der Bandbreite von HTTP-Anfragen in Go
Frage:
Als Go-Neuling , wie kann ich den Bandbreitenverbrauch während einer HTTP-GET-Anfrage einschränken?
Hintergrund:
Analyse:
Sie haben es entdeckt die mxk/go1/flowcontrol-Bibliothek, die eine Steuerung der Bandbreitennutzung auf niedriger Ebene ermöglicht. Die Integration mit der http.Get()-Methode erfordert jedoch Kenntnisse darüber, wie man auf den zugrunde liegenden Reader zugreift.
Lösung:
In Paketen von Drittanbietern gibt es zwar praktische Wrapper , kann es aufschlussreich sein, die Grundlagen der Bandbreitenkontrolle zu verstehen. Hier ist eine einfache Implementierung, die den Ansatz veranschaulicht:
<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>
Erklärung:
Dieser Code zeigt, wie die Bandbreite manuell begrenzt wird Verbrauch unter Beibehaltung der Kernfunktionalität der http.Get()-Methode.
Das obige ist der detaillierte Inhalt vonWie kann ich die Bandbreitennutzung während einer HTTP-GET-Anfrage in Go begrenzen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!