如何设置用于HTTP请求的IP?

我不知道是否有可能,因为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请求" title="HTTP请求">HTTP请求设置源地址,为什么?因为我不想将我的主要IP地址用于此类工作…

回答:

您可以在客户端传输中设置自定义拨号程序。

// 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,

}

以上是 如何设置用于HTTP请求的IP? 的全部内容, 来源链接: utcz.com/qa/424131.html

回到顶部