Maison  >  Article  >  développement back-end  >  Comment limiter l'utilisation de la bande passante lors d'une requête HTTP GET en Go ?

Comment limiter l'utilisation de la bande passante lors d'une requête HTTP GET en Go ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-01 12:12:30488parcourir

How to Limit Bandwidth Usage During an HTTP GET Request in Go?

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 :

  • __io.CopyN()__ : Lit un nombre spécifié d'octets (datachunk ) du corps de la réponse à intervalles contrôlés (timelapse).
  • __os.Stdout__ : représente la sortie standard, où les morceaux sont imprimés.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn