Maison >développement back-end >Golang >Comment définir des en-têtes pour les requêtes HTTP et utiliser une adresse IP spécifique avec http.Client et http.Transport ?
Définition des en-têtes pour les requêtes avec http.Client et http.Transport
Lorsque vous effectuez des requêtes HTTP avec plusieurs adresses IP disponibles, il est nécessaire de spécifiez l’adresse IP souhaitée pour les connexions sortantes. Cela peut être accompli en utilisant les structures http.Client et http.Transport.
Création d'un numéroteur avec une adresse IP spécifique
Tout d'abord, créez une instance net.Dialer et définissez le champ LocalAddr à l’adresse IP souhaitée. Dans votre code, vous avez :
<code class="go">tcpAddr := &net.TCPAddr{ IP: addrs[3].(*net.IPNet).IP, // Choosing ip address number 3 } d := net.Dialer{LocalAddr: tcpAddr}</code>
Personnalisation du http.Transport
Ensuite, créez une instance http.Transport et configurez son champ Dial avec le numéroteur personnalisé :
<code class="go">transport := &http.Transport{ Dial: (&net.Dialer{LocalAddr: tcpAddr}).Dial, TLSHandshakeTimeout: 10 * time.Second, }</code>
Création du http.Client
Enfin, créez une instance http.Client et définissez son champ Transport sur le transport personnalisé :
<code class="go">client := &http.Client{ Transport: transport, }</code>
Définition des en-têtes de requête
Pour définir les en-têtes d'une requête spécifique, vous devez créer un objet http.Request et utiliser la méthode Set sur son champ Header :
<code class="go">req, err := http.NewRequest("GET", "https://www.whatismyip.com/", nil) if err != nil { // Handle error } req.Header.Set("name", "value")</code>
Utilisation du client configuré
Une fois que vous avez défini les en-têtes, vous pouvez utiliser la méthode Do de l'instance client pour exécuter la requête :
<code class="go">resp, err := client.Do(req) if err != nil { // Handle error } // Handle the response</code>
En suivant ces étapes, vous pouvez définir des en-têtes pour les requêtes HTTP tout en utilisant une adresse IP spécifique pour les connexions sortantes.
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!