Windows の URL ごとのプロキシ選択に go-ieproxy を使う
Windows の自動ポリシーを静的な環境値に平坦化するのではなく、所有する transport で go-ieproxy.GetProxyFunc を使います。
go-ieproxy がすでに利用可能で、標準のデフォルト transport がまだ導入されている場合は、リクエストを考慮するプロキシ関数を組み込みます。
transport := http.DefaultTransport.(*http.Transport).Clone()
transport.Proxy = ieproxy.GetProxyFunc()
client := &http.Client{
Transport: transport,
Timeout: 30 * time.Second,
}net/http、time、github.com/mattn/go-ieproxy をインポートし、ワークロードのリクエストを client 経由で行います。型アサーションは DefaultTransport が http.Transport のままであることを要求します。
GetProxyFunc は静的設定、明示的な自動構成スクリプト、完全自動検出を扱います。Windows での検索は現在のユーザーの構成を使い、最初の API 呼び出しが失敗した場合はレジストリにフォールバックします。
OverrideEnvWithStaticProxy は別の選択をします。手動設定をエクスポートするため、宛先ごとの自動判定を保持できません。この変換は意図的に静的なポリシーにのみ使ってください。
Windows サービスでは、現在のユーザーがブラウザーの動作するデスクトップユーザーと異なることがあります。結果を比較するときは、サービスアカウントと実際の宛先を確認してください。検出は経路の候補を提供するもので、認証やエンドポイントに到達できる保証ではありません。