Go 程式用於自訂傳輸的代理程式使用
在Go 中,您可以設定標準函式庫的http.Client 以自動使用基於代理的代理關於環境變數。但是,當使用自訂傳輸時,不直接支援此功能。
解決方案是利用 http.ProxyFromEnvironment 方法。此方法根據 HTTP_PROXY 和 HTTPS_PROXY 等環境變數傳回用於給定請求的代理 URL。
要在Go 中使用具有自訂傳輸的代理,請按照以下步驟操作:
建立自訂http.Transport 實例:
<code class="go">tr := &http.Transport{ TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, }</code>
使用ProxyFromEnvironment 設定代理網址:
<code class="go">var PTransport = &http.Transport{Proxy: http.ProxyFromEnvironment}</code>
使用自訂傳輸建立http.Client:
<code class="go">client := http.Client{Transport: PTransport}</code>
<code class="go">resp, err := client.Get(url)</code>使用客戶端發出請求:
<code class="go">package main import ( "fmt" "io/ioutil" "net/http" ) func main() { var PTransport = &http.Transport{Proxy: http.ProxyFromEnvironment} client := http.Client{Transport: PTransport} resp, err := client.Get("https://jsonplaceholder.typicode.com/todos/1") if err != nil { panic(err) } bodyBytes, err := ioutil.ReadAll(resp.Body) if err != nil { panic(err) } fmt.Printf("GET Response = %s \n", string(bodyBytes)) }</code>這裡是程式碼示範此方法的範例:請記住為您的代理程式伺服器適當設定HTTP_PROXY 和HTTPS_PROXY 環境變數。
以上是如何在 Go 中使用帶有自訂傳輸的代理程式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!