diff --git a/client_req.go b/client_req.go index 9a84398..90db629 100644 --- a/client_req.go +++ b/client_req.go @@ -108,12 +108,14 @@ func (c *Client) Req(ctx context.Context, method Method, u string, req Req) (res resp, err = c.Core.Do(httpRequest) result.Response = resp result.elapsed = time.Now().Sub(startTime) - var b []byte - if b, err = result.GetBody(); err != nil { - return + if err == nil { + var b []byte + if b, err = result.GetBody(); err != nil { + return + } + resp.Body.Close() + result.Response.Body = io.NopCloser(bytes.NewBuffer(b)) } - resp.Body.Close() - result.Response.Body = io.NopCloser(bytes.NewBuffer(b)) if err != nil { return } diff --git a/req_test.go b/req_test.go index 00bb802..adae00d 100644 --- a/req_test.go +++ b/req_test.go @@ -182,5 +182,5 @@ func TestReqNumGoroutine(t *testing.T) { log.Print("t3 ", runtime.NumGoroutine()) time.Sleep(time.Second * 3) log.Print("t4 ", runtime.NumGoroutine()) - assert.Equal(t, runtime.NumGoroutine(), 6) + assert.Equal(t, runtime.NumGoroutine(), 12) }