ホームページ > バックエンド開発 > Golang > Go でカスタム トランスポートのプロキシをプログラムで構成するにはどうすればよいですか?

Go でカスタム トランスポートのプロキシをプログラムで構成するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-10-26 04:34:30
オリジナル
642 人が閲覧しました

How do I Programmatically Configure a Proxy for a Custom Transport in Go?

カスタム トランスポートでのプロキシの使用: Go プログラムによるソリューション

Go では、デフォルトで、http.Client はシステムのプロキシ設定を次のように使用します。 HTTP_PROXY や HTTPS_PROXY などの環境変数で構成されます。ただし、この動作はカスタム トランスポートには拡張されない場合があります。

http.ProxyFromEnvironment を使用してプロキシを設定する

カスタム トランスポートのプロキシをプログラムで構成するには、 http.ProxyFromEnvironment メソッド。このメソッドは、環境変数に基づいてプロキシ URL を返します。HTTPS リクエストでは HTTPS_PROXY が優先されます。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート