有谁知道这是什么原因吗?并发请求总是隔段时间就提示:golang Client.Timeout exceeded while awaiting headers

DreamingPHPer · · 2471 次点击 · 开始浏览    置顶

``` // 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

2471 次点击  
加入收藏 微博
6 回复  |  直到 2023-10-09 11:36:51
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传