Http客户端,每个请求具有多个goroutine和不同的代理

Http客户端,每个请求具有多个goroutine和不同的代理,http,go,Http,Go,假设我有一个http.Client,其中多个goroutine使用同一个http客户端发出GET请求,我的问题是我想保证每个GET请求都是通过不同的代理完成的 我在net/http/Transport文档中找不到实现这一点的方法,我的最佳选择是使用http客户端池,还是修改以接收将返回每个请求使用的代理的函数 多亏了JimB,它变得非常简单 client := &http.Client{Transport: &http.Transport{Proxy: func(r *http.

假设我有一个
http.Client
,其中多个goroutine使用同一个http客户端发出
GET
请求,我的问题是我想保证每个GET请求都是通过不同的代理完成的

我在
net/http/Transport
文档中找不到实现这一点的方法,我的最佳选择是使用http客户端池,还是修改以接收将返回每个请求使用的代理的函数

多亏了JimB,它变得非常简单

client := &http.Client{Transport: &http.Transport{Proxy: func(r *http.Request) (*url.URL, error) {
        proxyUrl, err := url.Parse(GetProxyUrl())
        return proxyUrl, err
    }}}

“Transport.Proxy”字段已经是一个函数,可以返回每个请求的代理。@JimB我不知道我怎么会错过它,非常感谢。如果愿意,请在回答中添加您的评论