Go API中的连接被强制终止

时间:2018-10-31 20:51:47

标签: go fasthttp

我有一个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,
    }
}

这可以通过某种方式解决吗,还是我不需要担心的事情?

0 个答案:

没有答案