April 2022
Beginner to intermediate
464 pages
6h 44m
Japanese
HTTPプロキシや設定方法については、プロキシのある環境における開発環境の整備の章で説明しました。ここでは net/http においての仕様やハマりどころについて説明します。
Goの標準パッケージである net/http では transport.go に宣言されている ProxyFromEnvironment の内容でプロキシサーバーの設定が利用されます。
func FromEnvironment() *Config {
return &Config {
HTTPProxy: getEnvAny("HTTP_PROXY", "http_proxy"),
HTTPSProxy: getEnvAny("HTTPS_PROXY", "https_proxy"),
NoProxy: getEnvAny("NO_PROXY", "no_proxy"),
CGI: os.Getenv("REQUEST_METHOD") != "",
}
}
上記で呼び出されている getEnvAny ですが、関数名から推測できるように、環境変数からプロキシ情報を読み込むようになっています。項目としては、 HTTP_PROXY 、 HTTPS_PROXY 、 NO_PROXY が有効で、それらの小文字も有効です。どちらも設定されている場合は大文字側の値が利用されます。
net/http パッケージのHTTPクライアントを用いて外部アクセスする場合は、上記の環境変数にプロキシ情報を設定するのがもっとも簡単な方法です。
Read now
Unlock full access