Limiter la bande passante des requêtes HTTP GET dans Go
En tant que novice en Go, on peut rencontrer le besoin de restreindre la consommation de bande passante de http Requêtes .Get(). Alors que les packages tiers proposent des wrappers pratiques, cet article plonge en profondeur dans les mécanismes sous-jacents de limitation de bande passante.
Accès au lecteur HTTP
Pour contrôler la bande passante, accéder au Le lecteur HTTP sous-jacent est crucial. Dans Go, ce lecteur est intégré à l'objet http.Response.
Limitation de bande passante
La fonction io.CopyN dans Go permet une copie contrôlée des données. En spécifiant le nombre d'octets (datachunk) et l'intervalle de temps (timelapse), les développeurs peuvent limiter efficacement l'utilisation de la bande passante.
Exemple de mise en œuvre
L'extrait de code suivant illustre comment limiter la bande passante dans Go :
<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>
Dans cet exemple, la bande passante est limitée aux octets de données toutes les secondes accélérées, limitant ainsi le taux de transfert. Ce processus se répète jusqu'à ce que la réponse HTTP soit entièrement reçue.
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!