ネットワーク通信 (http リクエストなど) に golang を使用する場合、外部ネットワーク リソースにアクセスするためにプロキシを設定する必要がある場合があります。この記事では、golangのプロキシの設定方法を紹介します。
最初に、環境変数 HTTP_PROXY と HTTPS_PROXY を設定する必要があります。これら 2 つの変数の値は、プロキシ サーバーのアドレスとポート番号です。例:
Linux/MacOS システム:
export HTTP_PROXY=http://proxy.server.address:port export HTTPS_PROXY=https://proxy.server.address:port
Windows システム:
set HTTP_PROXY=http://proxy.server.address:port set HTTPS_PROXY=https://proxy.server.address:port
必要な場合のみプロキシを一時的に設定するには、プログラム内でそれを使用できます。 http.ProxyFromEnvironment はプロキシ情報を取得します:
import ( "net/http" ) func main() { // 从环境变量中获取代理信息 proxy := http.ProxyFromEnvironment // 创建HTTP客户端 client := &http.Client{ Transport: &http.Transport{ Proxy: proxy, }, } // 发送GET请求 resp, err := client.Get("https://www.google.com") if err != nil { // 处理错误 } // 关闭响应体 defer resp.Body.Close() // 读取响应内容 // ... }
特定のプロキシを設定する必要がある場合は、net/http/httputil パッケージの NewSingleHostReverseProxy 関数を使用できます。プロキシを作成するには:
import ( "net/http" "net/http/httputil" "net/url" ) func main() { // 创建代理服务器的URL proxyUrl, _ := url.Parse("http://proxy.server.address:port") // 创建ReverseProxy reverseProxy := httputil.NewSingleHostReverseProxy(proxyUrl) // 创建HTTP服务器 http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { // 设置代理信息 r.URL.Host = "www.google.com" r.URL.Scheme = "https" // 将请求转发给代理服务器 reverseProxy.ServeHTTP(w, r) }) // 启动HTTP服务器 http.ListenAndServe(":8080", nil) }
上記は golang プロキシを設定する方法です。特定のニーズに応じてさまざまな方法を選択できます。実際のアプリケーションでは、ネットワーク通信のセキュリティと安定性を確保するために、プロキシ サーバーのセキュリティと信頼性に注意を払う必要があります。
以上がgolang セットプロキシの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。