gzip
This commit is contained in:
@@ -2,6 +2,7 @@ package platformapi
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
|
"compress/gzip"
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
@@ -156,8 +157,22 @@ func AccessPlatformAPIWithRetry(client *http.Client, handleRequest func() *http.
|
|||||||
bodyMap map[string]interface{}
|
bodyMap map[string]interface{}
|
||||||
parseJSONErr error
|
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)
|
baseapi.SugarLogger.Errorf("AccessPlatformAPIWithRetry:%s ioutil.ReadAll failed, url:%v, error:%v", trackInfo, request.URL, err)
|
||||||
errLevel = ErrLevelRecoverableErr // 读取数据错误,或数据格式错误认为是偶发情况,重试
|
errLevel = ErrLevelRecoverableErr // 读取数据错误,或数据格式错误认为是偶发情况,重试
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user