diff --git a/httpcache.go b/httpcache.go index b41a63d..a9bb024 100644 --- a/httpcache.go +++ b/httpcache.go @@ -192,11 +192,15 @@ func (t *Transport) RoundTrip(req *http.Request) (resp *http.Response, err error for _, header := range endToEndHeaders { cachedResp.Header[header] = resp.Header[header] } + resp.Body.Close() resp = cachedResp } else if (err != nil || (cachedResp != nil && resp.StatusCode >= 500)) && req.Method == "GET" && canStaleOnError(cachedResp.Header, req.Header) { // In case of transport failure and stale-if-error activated, returns cached content // when available + if resp != nil && resp.Body != nil { + resp.Body.Close() + } return cachedResp, nil } else { if err != nil || resp.StatusCode != http.StatusOK {