在自訂傳輸中使用代理: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中文網其他相關文章!