在Golang中重新使用http连接

前端之家收集整理的这篇文章主要介绍了在Golang中重新使用http连接前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我目前正在努力找到一种方法来重新使用连接,当在Golang的HTTP帖子。

我创建了一个运输和客户端如此:

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

然后我将这个客户端指针传递到一个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(respBody))> Call Body.Close()

猜你在找的Go相关文章