gzip
This commit is contained in:
@@ -2,6 +2,7 @@ package platformapi
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"compress/gzip"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
@@ -156,8 +157,22 @@ func AccessPlatformAPIWithRetry(client *http.Client, handleRequest func() *http.
|
||||
bodyMap map[string]interface{}
|
||||
parseJSONErr error
|
||||
)
|
||||
bodyData, err := ioutil.ReadAll(response.Body)
|
||||
if err != nil {
|
||||
|
||||
var bodyData []byte
|
||||
var getDataErr error
|
||||
//解析返回的gzip数据信息
|
||||
if response.Header.Get("Content-Encoding") == "gzip" {
|
||||
reader, e := gzip.NewReader(response.Body)
|
||||
if e != nil {
|
||||
fmt.Printf("create gzip reader err: %s \n\n", e.Error())
|
||||
return e
|
||||
}
|
||||
bodyData, getDataErr = ioutil.ReadAll(reader)
|
||||
} else {
|
||||
bodyData, getDataErr = ioutil.ReadAll(response.Body)
|
||||
}
|
||||
|
||||
if getDataErr != nil {
|
||||
baseapi.SugarLogger.Errorf("AccessPlatformAPIWithRetry:%s ioutil.ReadAll failed, url:%v, error:%v", trackInfo, request.URL, err)
|
||||
errLevel = ErrLevelRecoverableErr // 读取数据错误,或数据格式错误认为是偶发情况,重试
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user