http - 在请求进行中修改 golang Http Transport 是否安全?

标签 http go

我有一个基于每个请求通过代理轮换的应用程序。

目前我有一些代码是:

func (mon *Monitor) MassUrlRetrieve(n int, url string) (respBytes []byte) {
    funnel := make(chan []byte)
    go ProductRetrieveTimeout(TIMEOUT_RETRIEVE_URL, funnel)
    for i := 0; i < n; i++ {
        go mon.WrapGetUrlToChannel(funnel, url)
    }
    return <- funnel
}

基本上发送多个请求并返回第一个请求以响应/如果没有及时响应则超时。

WrapGetUrlToChannel 中,我创建了一个新的代理 url,并将其分配给 monclient.tr.Proxy

我的问题是 - 在请求进行期间修改客户端的传输是否安全?或者为了安全起见,我应该为每个代理使用不同的传输和客户端以确保它们不会干扰吗?

最佳答案

使用竞争检测器,它明确表明我不应该修改传输。最后,我决定轮流使用 *http.Transport 而不是代理,并在发出并发请求时使用唯一的客户端。

感谢@Flimzy

关于http - 在请求进行中修改 golang Http Transport 是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49827554/

相关文章:

HTTPS 图片 URL 解析后端

http - HTTP 中的多个 Set-cookie header

递归地向数组添加项目不起作用

oop - 需要帮助理解 Go 中的 `map[String]type` 行为

go - runtime.NumCPU输出为4

linux - .htaccess 将子域+文件夹重写为uri

php - HTTP Post 到 MySQL 插入空白行

java : upload files to HTTP server using POST, 服务器代码问题?

go - 从 yaml 文件中以自定义格式读取配置

c# - C#中的gRPC客户端不适用于具有mTLS支持的Go中的gRPC服务器