Skip to content

Commit 8e7ed04

Browse files
authored
Merge pull request #69 from brainexe/real_all_body
read full request.Body to reuse http/1 connections
2 parents 90a950f + 9c00479 commit 8e7ed04

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

api_response.go

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ package bitbucketv1
77
import (
88
"encoding/json"
99
"fmt"
10+
"io"
1011
"io/ioutil"
1112
"net/http"
1213
"strings"
@@ -668,7 +669,6 @@ func GetActivitiesResponse(r *APIResponse) (Activities, error) {
668669

669670
// NewAPIResponse create new APIResponse from http.Response
670671
func NewAPIResponse(r *http.Response) *APIResponse {
671-
672672
response := &APIResponse{Response: r}
673673
return response
674674
}
@@ -688,10 +688,18 @@ func NewAPIResponseWithError(r *http.Response, bodyBytes []byte, err error) (*AP
688688
// NewBitbucketAPIResponse create new API response from http.response
689689
func NewBitbucketAPIResponse(r *http.Response) (*APIResponse, error) {
690690
response := &APIResponse{Response: r}
691-
err := json.NewDecoder(r.Body).Decode(&response.Values)
691+
692+
decoder := json.NewDecoder(r.Body)
693+
err := decoder.Decode(&response.Values)
692694
if err != nil {
693695
return nil, err
694696
}
697+
698+
if decoder.More() {
699+
// there's more data in the stream, so discard whatever is left
700+
_, _ = io.Copy(ioutil.Discard, r.Body)
701+
}
702+
695703
return response, err
696704
}
697705

0 commit comments

Comments
 (0)