Heim  >  Artikel  >  Backend-Entwicklung  >  ## Wie richtet man Proxy-Unterstützung in Go-HTTP-Clients mit benutzerdefinierten Transporten ein?

## Wie richtet man Proxy-Unterstützung in Go-HTTP-Clients mit benutzerdefinierten Transporten ein?

Susan Sarandon
Susan SarandonOriginal
2024-10-26 05:22:30229Durchsuche

##  How to Set Up Proxy Support in Go HTTP Clients with Custom Transports?

Verwenden eines Proxys in Go-Programmen mit benutzerdefinierten Transporten

Beim Erstellen von HTTP-Clients in Go ist es häufig erforderlich, einen zu verarbeitenden benutzerdefinierten Transport anzugeben spezifische Netzwerkeinstellungen. Der Standard-HTTP-Client berücksichtigt jedoch nicht automatisch die Proxy-Umgebungsvariablen.

Verwenden von http.ProxyFromEnvironment

Um die Proxy-Unterstützung in Ihren Go-Programmen zu aktivieren, können Sie Folgendes verwenden: die http.ProxyFromEnvironment-Methode. Diese Methode gibt eine Proxy-URL basierend auf den Umgebungsvariablen HTTP_PROXY, HTTPS_PROXY und NO_PROXY zurück.

<code class="go">var PTransport = &http.Transport{
    Proxy: http.ProxyFromEnvironment,
}

client := http.Client{
    Transport: PTransport,
}</code>

Beispielverwendung

Um zu testen, ob dieser Ansatz funktioniert, können Sie Folgendes tun Legen Sie die Proxy-Umgebungsvariablen manuell fest:

export http_proxy='http://user:password@proxy-server:3128'
export https_proxy='http://user:password@proxy-server:3128'
export HTTP_PROXY='http://user:password@proxy-server:3128'
export HTTPS_PROXY='http://user:password@proxy-server:3128'

Jetzt können Sie einen HTTP-Client erstellen und eine Anfrage senden:

<code class="go">req, _ := http.NewRequest("GET", "https://jsonplaceholder.typicode.com/todos/1", nil)
req.Header.Add("If-None-Match", `some value`)
resp, _ := client.Do(req)</code>

Wenn die Proxy-Einstellungen korrekt sind, erfolgt die Antwort von der Fernbedienung Server sollte angezeigt werden.

Das obige ist der detaillierte Inhalt von## Wie richtet man Proxy-Unterstützung in Go-HTTP-Clients mit benutzerdefinierten Transporten ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn