我不知道这是否可能,因为 std lib 没有说明有关当前使用的地址的任何信息:http://golang.org/pkg/net/http/resp, err := http.Get("http://example.com/")if err != nil { // handle error}defer resp.Body.Close()body, err := ioutil.ReadAll(resp.Body)我想要做的是为那个 http 请求设置源地址,为什么?因为我不想将我的主要 IP 地址用于那种东西......
1 回答
素胚勾勒不出你
TA贡献1827条经验 获得超9个赞
您可以在客户端的传输中设置自定义拨号程序。
// Create a transport like http.DefaultTransport, but with a specified localAddr
transport := &http.Transport{
Proxy: http.ProxyFromEnvironment,
DialContext: (&net.Dialer{
Timeout: 30 * time.Second,
KeepAlive: 30 * time.Second,
LocalAddr: localAddr,
DualStack: true,
}).DialContext,
MaxIdleConns: 100,
IdleConnTimeout: 90 * time.Second,
TLSHandshakeTimeout: 10 * time.Second,
ExpectContinueTimeout: 1 * time.Second,
}
client := &http.Client{
Transport: transport,
}
- 1 回答
- 0 关注
- 236 浏览
添加回答
举报
0/150
提交
取消