Das Einrichten eines Proxys mit Authentifizierung für HTTP-Anfragen kann eine Herausforderung sein, insbesondere wenn es in vorhandenen Code von Drittanbietern integriert wird. Dieser Artikel befasst sich mit einem spezifischen Problem, das beim Versuch auftritt, einer vorhandenen Codebasis eine Proxy-Authentifizierung hinzuzufügen.
Problembeschreibung:
Der bereitgestellte Codeausschnitt richtet einen HTTP-Proxy ohne Authentifizierung ein Verwendung eines Transportobjekts mit der ProxyURL-Funktion. Das Hinzufügen des Proxy-Authorization-Headers zum Antwortobjekt nach der POST-Anfrage schlägt jedoch bei der Authentifizierung des Proxys fehl.
Lösung:
Um dieses Problem zu beheben, geben Sie direkt an Proxy-URL mit Authentifizierungsdaten im Transportobjekt.
// Create an HTTP client with proxy authentication client := &http.Client{ Transport: &http.Transport{ Proxy: http.ProxyURL(&url.URL{ Scheme: "http", User: url.UserPassword("username", "password"), Host: "proxy.com:8080", }), }, } // Use the client to make requests with proxy authentication resp, err := client.PostForm(method, params)
Alternativ kann auch die Proxy-URL geparst werden direkt.
// Parse the proxy URL proxyURL, _ := url.Parse("http://username:password@proxy.com:8080") // Create an HTTP client with proxy authentication client := &http.Client{ Transport: &http.Transport{ Proxy: http.ProxyURL(proxyURL), }, } // Use the client to make requests with proxy authentication resp, err := client.PostForm(method, params)
Dieser Ansatz stellt sicher, dass die Proxy-Anmeldeinformationen in das Transportobjekt integriert werden, sodass die HTTP-POST-Anfrage den authentifizierten Proxy verwenden kann.
Das obige ist der detaillierte Inhalt vonWie konfiguriere ich die HTTP-Proxy-Authentifizierung in Go richtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!