Maison >développement back-end >Golang >Comment authentifier les demandes de proxy HTTP Go avec PostForm ?

Comment authentifier les demandes de proxy HTTP Go avec PostForm ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-28 14:17:18415parcourir

How to Authenticate Go HTTP Proxy Requests with PostForm?

Optez pour un proxy http avec authentification

Pour les scénarios nécessitant un proxy avec authentification, l'utilisation de la méthode PostForm peut être difficile. Cet article explore une solution de contournement à ce problème.

Approche initiale et ses limites

En règle générale, la définition de l'en-tête Proxy-Authorization dans la requête peut suffire pour l'authentification. Cependant, lorsque vous tentez de modifier un package tiers et d'ajouter la prise en charge du proxy, l'ajout de l'en-tête Proxy-Authorization après la création du client peut ne pas suffire.

Solution alternative

L'approche alternative consiste à créer un client HTTP personnalisé avec la configuration proxy souhaitée. Ce client peut ensuite être remplacé dans le package tiers.

Extrait de code :

client := &http.Client{
  Transport: &http.Transport{
    Proxy: http.ProxyURL(&url.URL{
      Scheme: "http",
      User:   url.UserPassword("username", "password"),
      Host:   "146.137.9.45:65233",
    }),
  },
}

Ce client peut être utilisé dans le package tiers au lieu de créant un nouveau client à chaque fois.

Alternativement, l'URL du proxy peut être analysée directement :

url, _ := url.Parse("http://username:[email protected]:65233")
client := &http.Client{
  Transport: &http.Transport{
    Proxy: http.ProxyURL(url),
  },
}

En utilisant ce client sur mesure, le proxy avec authentification peut être intégré de manière transparente dans le package tiers, permettant des demandes de proxy authentifiées via la méthode PostForm.

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