カスタム トランスポートでプロキシを使用するための 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 を使用してプロキシ URL を設定します:
<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 中国語 Web サイトの他の関連記事を参照してください。