Go でカスタム トランスポートでプロキシを使用する方法は?

Susan Sarandon
リリース: 2024-10-26 05:24:30
オリジナル
667 人が閲覧しました

How to Use a Proxy with a Custom Transport in Go?

カスタム トランスポートでプロキシを使用するための Go プログラム

Go では、プロキシ ベースのプロキシを自動的に使用するように標準ライブラリの http.Client を設定できます。環境変数について。ただし、カスタム トランスポートを使用する場合、この機能は直接サポートされません。

解決策は、http.ProxyFromEnvironment メソッドを利用することです。このメソッドは、HTTP_PROXY や HTTPS_PROXY などの環境変数に基づいて、指定されたリクエストに使用するプロキシ URL を返します。

Go でカスタム トランスポートでプロキシを使用するには、次の手順に従います。

  1. カスタム http.Transport インスタンスを作成します:

    <code class="go">tr := &http.Transport{
        TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
    }</code>
    ログイン後にコピー
  2. ProxyFromEnvironment を使用してプロキシ URL を設定します:

    <code class="go">var PTransport = &http.Transport{Proxy: http.ProxyFromEnvironment}</code>
    ログイン後にコピー
  3. カスタム トランスポートを使用して http.Client を作成します:

    <code class="go">client := http.Client{Transport: PTransport}</code>
    ログイン後にコピー
  4. クライアントを使用してリクエストを作成します:

    <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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!