分享
有谁知道这是什么原因吗?并发请求总是隔段时间就提示:golang Client.Timeout exceeded while awaiting headers
DreamingPHPer · · 3508 次点击 · 开始浏览 置顶这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。
```
// Get 提交
func Get(api string, params, headers map[string]string, tryTimes int) (error, int, interface{}) {
// 创建请求
req, _ := http.NewRequest("GET", api, nil)
// GET 请求携带查询参数
q := req.URL.Query()
if len(params) > 0 {
for key, value := range params {
q.Add(key, value)
}
}
req.URL.RawQuery = q.Encode()
// 设置请求头
if len(headers) > 0 {
for key, value := range headers {
req.Header.Set(key, value)
}
}
// 发送请求
resp, err := client.Do(req)
if err != nil {
if tryTimes > 0 {
return Get(api, params, headers, tryTimes-1)
}
// 上报日志
return err, 0, nil
}
// 关闭连接
defer resp.Body.Close()
// 读取内容
body, err := io.ReadAll(resp.Body)
if err != nil {
// 上报日志
return err, resp.StatusCode, nil
}
return nil, resp.StatusCode, string(body)
}
```
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
关注微信3508 次点击
添加一条新回复
(您需要 后才能回复 没有账号 ?)
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传