Contrôle de la bande passante des requêtes HTTP dans Go
Question :
En tant que novice en Go , comment puis-je restreindre la consommation de bande passante lors d'une requête HTTP GET ?
Contexte :
Analyse :
Vous avez découvert la bibliothèque mxk/go1/flowcontrol, qui fournit un contrôle de bas niveau sur l'utilisation de la bande passante. Cependant, son intégration avec la méthode http.Get() nécessite de comprendre comment accéder au lecteur sous-jacent.
Solution :
Bien que des wrappers pratiques existent dans des packages tiers , comprendre les principes fondamentaux du contrôle de la bande passante peut être instructif. Voici une implémentation simple qui illustre l'approche :
<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>
Explication :
Ce code montre comment limiter manuellement la bande passante. consommation tout en conservant les fonctionnalités de base de la méthode http.Get().
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!