我使用go的http包来发出http请求。 在Ubuntu Linux上有多个接口时,如何配置go的http客户端使用特定的接口或IP地址来执行请求?
默认的http客户端如何决定它使用哪个界面?
答案 0 :(得分:2)
Go http.Client
使用http.RoundTripper
发出请求。反过来,这使用net.Dialer
来建立出站网络连接。 net.Dialer
有一个字段LocalAddr
,它指定了进行连接的本地地址。您可以将自己的Client
与自己的RoundTripper
一起使用自己的net.Dialer
,并指定要使用的LocalAddr
。您可以在文档中链接的stdlib代码中查看每个实例,并复制用于创建默认实例的机制,以便在根据需要覆盖LocalAddr
时保持默认行为。