问题: 为什么我的 Go HTTP 客户端会创建到同一主机的多个连接,尽管使用DisableKeepAlives 选项为 false?
Go HTTP 客户端默认设计为重用连接。但是,有某些条件可以阻止它这样做。
诊断:
在提供的代码中,http.Transport.RoundTrip() 方法不是紧接着调用 resp.Close()。这可能会导致连接在请求发送后立即关闭,从而无法将其重新用于后续请求。
解决方案:
为了确保 HTTP 连接重用,需要两个步骤:
代码片段:
<code class="go">res, _ := client.Do(req) io.Copy(ioutil.Discard, res.Body) res.Body.Close()</code>
其他注意事项:
以上是即使“DisableKeepAlives”设置为 False,为什么我仍然在 Go HTTP 客户端中创建多个连接?的详细内容。更多信息请关注PHP中文网其他相关文章!