Skip to content

Commit c370809

Browse files
committed
支持Content-Type gzip
1 parent 02592c7 commit c370809

File tree

1 file changed

+11
-11
lines changed

1 file changed

+11
-11
lines changed

http/client/client.go

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"io/ioutil"
99
"net"
1010
"net/http"
11+
"strings"
1112
"time"
1213

1314
"github.com/juju/errors"
@@ -112,22 +113,21 @@ func (c HTTPClient) do(method, url string, headers map[string]string, body []byt
112113

113114
c.logger.Errorf("url:%v, response header:%#v", url, resp.Header)
114115

115-
var data []byte
116+
data, err := ioutil.ReadAll(resp.Body)
117+
if err != nil {
118+
return nil, errors.Trace(err)
119+
}
116120

117-
switch resp.Header.Get("Content-Encoding") {
118-
case "gzip":
119-
gr, err := gzip.NewReader(resp.Body)
121+
if strings.Contains(resp.Header.Get("Content-Encoding"), "gzip") || strings.Contains(resp.Header.Get("Content-Type"), "gzip") {
122+
gr, err := gzip.NewReader(bytes.NewBuffer(data))
120123
if err != nil {
121124
return nil, errors.Trace(err)
122125
}
126+
defer gr.Close()
123127
data, err = ioutil.ReadAll(gr)
124-
gr.Close()
125-
default:
126-
data, err = ioutil.ReadAll(resp.Body)
127-
}
128-
129-
if err != nil {
130-
return nil, errors.Trace(err)
128+
if err != nil {
129+
return nil, errors.Trace(err)
130+
}
131131
}
132132

133133
if resp.StatusCode != http.StatusOK {

0 commit comments

Comments
 (0)