From 3357c56626d8770358923d7d569cb3ef32fd5450 Mon Sep 17 00:00:00 2001 From: Bruce Marriner Date: Sun, 10 Jan 2016 17:30:19 -0600 Subject: [PATCH] Minor changes to Request() func, closes #73 --- restapi.go | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/restapi.go b/restapi.go index 87e32d8..cca5720 100644 --- a/restapi.go +++ b/restapi.go @@ -30,9 +30,12 @@ func (s *Session) Request(method, urlStr string, data interface{}) (response []b fmt.Println("API REQUEST PAYLOAD :: [" + fmt.Sprintf("%+v", data) + "]") } - body, err := json.Marshal(data) - if err != nil { - return + var body []byte + if data != nil { + body, err = json.Marshal(data) + if err != nil { + return + } } req, err := http.NewRequest(method, urlStr, bytes.NewBuffer(body)) @@ -59,6 +62,7 @@ func (s *Session) Request(method, urlStr string, data interface{}) (response []b client := &http.Client{Timeout: (20 * time.Second)} resp, err := client.Do(req) + defer resp.Body.Close() if err != nil { return } @@ -67,7 +71,6 @@ func (s *Session) Request(method, urlStr string, data interface{}) (response []b if err != nil { return } - resp.Body.Close() if s.Debug { @@ -88,8 +91,7 @@ func (s *Session) Request(method, urlStr string, data interface{}) (response []b // TODO check for 429 response, rate-limit when we get one. default: // Error condition - err = fmt.Errorf("HTTP %d", resp.StatusCode) - return + err = fmt.Errorf("HTTP %s, %s", resp.Status, response) } return