在自定义传输中使用代理:Go 编程解决方案
在 Go 中,默认情况下,http.Client 使用系统的代理设置作为在 HTTP_PROXY 和 HTTPS_PROXY 等环境变量中配置。但是,此行为可能不会扩展到自定义传输。
使用 http.ProxyFromEnvironment 设置代理
要以编程方式为自定义传输配置代理,您可以使用http.ProxyFromEnvironment 方法。此方法根据环境变量返回代理 URL,HTTPS_PROXY 优先用于 HTTPS 请求。
<code class="go">import ( "log" "net/http" "os" ) func main() { // Get proxy URL from environment variables proxyURL := http.ProxyFromEnvironment(os.Getenv) // Create a custom transport transport := &http.Transport{ TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, Proxy: proxyURL, } // Create a client with the custom transport client := &http.Client{Transport: transport} // Send a request through the proxy resp, err := client.Get("https://example.com") if err != nil { log.Fatal("Error making request:", err) } // Read the response body defer resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) if err != nil { log.Fatal("Error reading response:", err) } // Print the response body fmt.Println(string(body)) }</code>
此代码片段演示了如何使用 http.ProxyFromEnvironment 来设置自定义传输的代理。通过使用环境变量来配置代理设置,您可以轻松地在不同的代理配置之间切换,而无需修改代码。
以上是如何以编程方式在 Go 中为自定义传输配置代理?的详细内容。更多信息请关注PHP中文网其他相关文章!