我有一个Go应用,该应用使用fasthttp服务一些API请求。
每当我使用curl
调用这些API之一时,一切都会按预期进行。但是,每当我从另一个Go应用程序调用API时,我的服务器输出都会出现以下错误:
服务连接“ 127.0.0.1:8080”时出现错误<->“ 127.0.0.1:58377”: 读取请求标头时出错:读取tcp4 127.0.0.1:8080->127.0.0.1:58377:wsarecv:远程主机强行关闭了现有连接。
这似乎对服务器或客户端没有负面影响,但使我相信我做错了事情,将来可能会给我带来麻烦。
这是我调用API的方式:
func (c *codeAPI) DoGET(endpoint string) (api.CodeAPIResponse, error) {
req, err := http.NewRequest("GET", c.apiURL+endpoint, nil)
if err != nil {
return nil, err
}
req.Header.Set("Authorization", "Bearer "+strings.TrimSpace(c.ctx.Config.AuthKey))
resp, err := c.client.Do(req)
if err != nil {
return nil, err
}
defer resp.Body.Close()
var body CodeAPIBody
err = json.NewDecoder(resp.Body).Decode(&body)
return body, err
}
创建客户端的位置如下:
func NewCodeAPI(endpoint, authKey string) api.CodeAPI {
return &codeAPI{
client: &http.Client{
Timeout: time.Second * 10,
},
apiURL: endpoint,
}
}
这可以通过某种方式解决吗,还是我不需要担心的事情?