diff --git a/http/client/client.go b/http/client/client.go index cba55c4d..0ec1603a 100644 --- a/http/client/client.go +++ b/http/client/client.go @@ -112,6 +112,10 @@ func (c *Client) executeRequest(request *http.Request) (*Response, error) { client := c.buildClient() resp, err := client.Do(request) + if resp != nil { + defer resp.Body.Close() + } + if err != nil { if uerr, ok := err.(*url.Error); ok { switch uerr.Err.(type) { @@ -135,7 +139,6 @@ func (c *Client) executeRequest(request *http.Request) (*Response, error) { return nil, err } - defer resp.Body.Close() if resp.ContentLength > maxBodySize { return nil, fmt.Errorf("client: response too large (%d bytes)", resp.ContentLength)