gpt4 book ai didi

go - 在 Go 中重用 http 连接

转载 作者:IT老高 更新时间:2023-10-28 12:58:04 31 4
gpt4 key购买 nike

我目前正在努力寻找一种在 Go 中创建 HTTP 帖子时重用连接的方法。

我已经像这样创建了一个传输和客户端:

// Create a new transport and HTTP client
tr := &http.Transport{}
client := &http.Client{Transport: tr}

然后我将此客户端指针传递给一个 goroutine,该 goroutine 正在向同一个端点发布多个帖子,如下所示:

r, err := client.Post(url, "application/json", post)

查看 netstat,这似乎会导致每个帖子都有一个新连接,从而导致大量并发连接打开。

在这种情况下重用连接的正确方法是什么?

最佳答案

确保您阅读直到响应完成并调用 Close()

例如

res, _ := client.Do(req)
io.Copy(ioutil.Discard, res.Body)
res.Body.Close()

再次...为了确保 http.Client 连接重用,请务必:

  • 读取直到响应完成(即 ioutil.ReadAll(resp.Body))
  • 调用Body.Close()

关于go - 在 Go 中重用 http 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17948827/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com