使用第三方包时,向现有代码添加代理身份验证可能具有挑战性。本文介绍如何配置 Go HTTP 客户端以利用经过身份验证的代理。
在提供的代码中,您尝试使用 resp.Header.Add("Proxy-Authorization", basicAuth) 行添加代理身份验证发送请求后。但是,这种方法可能无效,因为需要在发送请求之前设置代理授权标头。
要解决此问题,您应该修改代码以使用代理配置创建自定义 HTTP 客户端。然后可以使用这个修改后的客户端来发出请求。您可以通过以下方式实现此目的:
// Create a custom HTTP client with proxy authentication httpClient := &http.Client{ Transport: &http.Transport{ Proxy: http.ProxyURL(&url.URL{ Scheme: "http", User: url.UserPassword("username", "password"), Host: "proxy.com:8080", }), }, } // Make requests using the custom HTTP client response, err := httpClient.Get(...)
或者,您可以使用以下代码片段来解析代理 URL:
proxyURL, err := url.Parse("http://username:password@proxy.com:8080") httpClient := &http.Client{ Transport: &http.Transport{ Proxy: http.ProxyURL(proxyURL), }, }
创建自定义 HTTP 客户端后,您可以替换它位于第三方包中,用于处理具有代理身份验证的请求。
以上是如何使用 Go HTTP 客户端正确配置代理身份验证?的详细内容。更多信息请关注PHP中文网其他相关文章!