考虑到我有一个http.Client
,其中多个goroutine正在使用相同的http客户端发出GET
请求,我的问题是我想保证每个get请求都是通过不同的代理完成的。
我无法在net/http/Transport
文档中找到实现这一目标的方法,使用http客户端池是最好的选择,或修改go/src/net/http/transport.go
以接收将返回的函数每个请求使用的代理?
感谢JimB的结果就像
那样简单client := &http.Client{Transport: &http.Transport{Proxy: func(r *http.Request) (*url.URL, error) {
proxyUrl, err := url.Parse(GetProxyUrl())
return proxyUrl, err
}}}