谁知道这个错误是什么原因吗?急!

DreamingPHPer · · 957 次点击
注释掉这行 req.Header.Set("Connection", "close")
#2
更多评论
这是发起请求的代码: ``` func Get(api string, params, headers map[string]string, timeout int) (error, int, interface{}) { // 创建 http 客户端 defaultTransport := http.DefaultTransport tr := *defaultTransport.(*http.Transport) tr.TLSClientConfig = &tls.Config{ InsecureSkipVerify: true, } tr.DisableKeepAlives = true client := &http.Client{Transport: &tr} // 设置超时时间 if timeout > 0 { client.Timeout = time.Duration(timeout) * time.Second } else { client.Timeout = time.Duration(5) * time.Second } // 创建请求 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) } } // 发送请求 req.Header.Set("Connection", "close") resp, err := client.Do(req) if err != nil { if strings.Contains(err.Error(), "Timeout") { return Get(api, params, headers, timeout) } // 上报日志 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) } ```
#1