Maison > développement back-end > Golang > le corps du texte

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 ?

Susan Sarandon
Libérer: 2024-10-25 02:48:29
original
305 Les gens l'ont consulté

How do I set headers for HTTP requests and use a specific IP address with http.Client and 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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!