This commit is contained in:
苏尹岚
2021-03-24 10:58:31 +08:00
parent 92421e653a
commit 824aabbfa7
3 changed files with 84 additions and 16 deletions

View File

@@ -510,6 +510,62 @@ func (a *API) AccessStorePage3(fullURL string, params map[string]interface{}, re
return retVal, err
}
func (a *API) AccessStorePage4(fullURL string, values string) (retVal interface{}, err error) {
if a.GetCookieCount() == 0 {
return nil, fmt.Errorf("需要设置Store Cookie才能使用此方法")
}
err = platformapi.AccessPlatformAPIWithRetry(a.client,
func() *http.Request {
request, _ := http.NewRequest(http.MethodPost, fullURL, strings.NewReader(values))
request.Header.Set("Content-Type", "application/x-www-form-urlencoded")
request.Header.Set("accept", "application/json, text/javascript, */*; q=0.01")
request.Header.Set("charset", "UTF-8")
a.FillRequestCookies(request)
return request
},
a.config,
func(response *http.Response, bodyStr string, jsonResult1 map[string]interface{}) (errLevel string, err error) {
if jsonResult1 == nil {
return platformapi.ErrLevelRecoverableErr, fmt.Errorf("mapData is nil")
}
for _, v := range htmlResponeURLs {
if strings.Index(fullURL, v) >= 0 && jsonResult1[platformapi.KeyData] != nil {
retVal = bodyStr
return platformapi.ErrLevelSuccess, nil
}
}
retVal = jsonResult1
var errMsg string
code, ok := jsonResult1["code"].(string)
if !ok {
if statusMap, ok := jsonResult1["status"].(map[string]interface{}); !ok {
if jsonResult1["operTag"] != nil {
return platformapi.ErrLevelSuccess, nil
}
return platformapi.ErrLevelGeneralFail, utils.NewErrorCode(utils.Format4Output(jsonResult1, true), "999")
} else {
code = utils.Int64ToStr(utils.ForceInterface2Int64(statusMap["errorCode"]))
errMsg = utils.Interface2String(statusMap["message"])
}
} else {
errMsg = utils.Interface2String(jsonResult1["msg"])
}
if code == ResponseCodeSuccess {
return platformapi.ErrLevelSuccess, nil
}
newErr := utils.NewErrorCode(errMsg, code)
if _, ok := pageExceedLimitCodes[code]; ok {
return platformapi.ErrLevelExceedLimit, newErr
} else if _, ok := pageCanRetryCodes[code]; ok {
return platformapi.ErrLevelRecoverableErr, newErr
} else {
baseapi.SugarLogger.Debugf("jd AccessStorePage failed, jsonResult1:%s", utils.Format4Output(jsonResult1, true))
return platformapi.ErrLevelCodeIsNotOK, newErr
}
})
return retVal, err
}
func (a *API) AccessStorePage(fullURL string, params map[string]interface{}, isPost bool) (retVal map[string]interface{}, err error) {
result, err := a.AccessStorePage2(fullURL, params, isPost, ResultKeyResult)
if err == nil {
@@ -1183,6 +1239,17 @@ func (a *API) ExcuteInvoking(interfaceId string, interfaceType int) (err error)
return err
}
//上线前,测试接口
func (a *API) SaveCheckedInters() (err error) {
retVal := ""
for k, v := range interfaceMap {
retVal += "interfaceIds[]=" + k + "-" + utils.Int64ToStr(utils.MustInterface2Int64(v[1])) + "&"
}
retVal = retVal[:len(retVal)-1]
_, err = a.AccessStorePage4("https://openo2o.jddj.com/sandBox/saveCheckedInters.htm", retVal)
return err
}
//我要上线
func (a *API) ToOnline() (err error) {
_, err = a.AccessStorePage2("https://openo2o.jddj.com/sandBox/toOnline.htm", nil, true, "")