Maison >développement back-end >Golang >Comment utiliser un proxy avec un transport personnalisé dans Go ?
Programmer Go pour une utilisation proxy avec un transport personnalisé
Dans Go, vous pouvez configurer le http.Client de la bibliothèque standard pour utiliser automatiquement un proxy basé sur les variables d'environnement. Cependant, lors de l'utilisation d'un transport personnalisé, cette fonctionnalité n'est pas directement prise en charge.
La solution consiste à utiliser la méthode http.ProxyFromEnvironment. Cette méthode renvoie l'URL du proxy à utiliser pour une requête donnée en fonction de variables d'environnement telles que HTTP_PROXY et HTTPS_PROXY.
Pour utiliser un proxy avec un transport personnalisé dans Go, suivez ces étapes :
Créez une instance http.Transport personnalisée :
<code class="go">tr := &http.Transport{ TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, }</code>
Définissez l'URL du proxy à l'aide de ProxyFromEnvironment :
<code class="go">var PTransport = &http.Transport{Proxy: http.ProxyFromEnvironment}</code>
Créez un http.Client avec le transport personnalisé :
<code class="go">client := http.Client{Transport: PTransport}</code>
Utilisez le client pour faire des requêtes :
<code class="go">resp, err := client.Get(url)</code>
Voici un code exemple illustrant cette approche :
<code class="go">package main import ( "fmt" "io/ioutil" "net/http" ) func main() { var PTransport = &http.Transport{Proxy: http.ProxyFromEnvironment} client := http.Client{Transport: PTransport} resp, err := client.Get("https://jsonplaceholder.typicode.com/todos/1") if err != nil { panic(err) } bodyBytes, err := ioutil.ReadAll(resp.Body) if err != nil { panic(err) } fmt.Printf("GET Response = %s \n", string(bodyBytes)) }</code>
N'oubliez pas de définir les variables d'environnement HTTP_PROXY et HTTPS_PROXY de manière appropriée pour votre serveur proxy.
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!