+autonavi.BatchWalkingDistance

This commit is contained in:
gazebo
2019-10-18 12:02:14 +08:00
parent ef90a430ac
commit 629aa20fea
3 changed files with 162 additions and 6 deletions

View File

@@ -24,6 +24,7 @@ const (
DefMaxRecoverableRetryCount = 1 // 可恢复类错误(一般指网络错),最大重试次数
KeyTrackInfo = "TrackInfo"
KeyData = "fakeData"
)
type APIRetryConfig struct {
@@ -147,6 +148,7 @@ func AccessPlatformAPIWithRetry(client *http.Client, handleRequest func() *http.
}
var (
errLevel string
bodyGeneral interface{}
bodyMap map[string]interface{}
parseJSONErr error
)
@@ -155,15 +157,23 @@ func AccessPlatformAPIWithRetry(client *http.Client, handleRequest func() *http.
baseapi.SugarLogger.Errorf("AccessPlatformAPIWithRetry:%s ioutil.ReadAll failed, url:%v, request:%v, error:%v", trackInfo, request.URL, getClonedData(request.URL, savedBuf), err)
errLevel = ErrLevelRecoverableErr // 读取数据错误,或数据格式错误认为是偶发情况,重试
} else {
if err = utils.TryUnmarshalUseNumber(bodyData, &bodyMap); err != nil {
if err = utils.TryUnmarshalUseNumber(bodyData, &bodyGeneral); err != nil {
parseJSONErr = err
err = nil // 尝试忽略解析成json错
} else {
baseapi.SugarLogger.Debugf("AccessPlatformAPIWithRetry:%s url:%v, response:%s", trackInfo, request.URL, utils.Format4Output(bodyMap, true))
baseapi.SugarLogger.Debugf("AccessPlatformAPIWithRetry:%s url:%v, response:%s", trackInfo, request.URL, utils.Format4Output(bodyGeneral, true))
}
// 临时处理返回值居然不是map的情况
if bodyMap2, ok := bodyGeneral.(map[string]interface{}); ok {
bodyMap = bodyMap2
} else {
bodyMap = map[string]interface{}{
KeyData: bodyGeneral,
}
}
errLevel, err = handleResponse(response, string(bodyData), bodyMap)
if err != nil && parseJSONErr != nil {
const maxOutputLen = 200
const maxOutputLen = 2000
bodyDataLen := len(bodyData)
bodyData2 := bodyData
if bodyDataLen > maxOutputLen {