2017-06-15 18 views
1

私はhttpのリクエストを行うためにgoのhttpパッケージを使用しています。 Ubuntu Linuxにいくつかのインターフェイスがある場合、特定のインターフェイスまたはIPアドレスを使用して要求を実行するには、どうすればgoのhttpクライアントを設定できますか?ゴランのhttp要求にネットワークインターフェイスを指定してください

デフォルトのHTTPクライアントは、どのインターフェイスを使用するかをどのように決定しますか?

+0

Linuxでは、通常はインターフェイスにバインドしません。バインドするIPアドレスを選択し、ルーティング中にインターフェイスが選択されることに注意してください。 – JimB

答えて

2

ゴーのhttp.Clientは、http.RoundTripperを使用してリクエストします。これには、net.Dialerを使用してアウトバウンドネットワーク接続を確立します。 net.Dialerには、接続が行われるローカルアドレスを指定するフィールドLocalAddrがあります。独自のClientをご自身のRoundTripperと一緒にご自身のnet.Dialerと一緒に使用し、LocalAddrを使用してください。ドキュメントからリンクされているstdlibコードでこれらのインスタンスがそれぞれどのようにインスタンス化されているかを確認し、必要に応じてデフォルトの動作を維持してデフォルトのインスタンスを作成し、LocalAddrをオーバーライドします。

関連する問題