细化http request错误分类
This commit is contained in:
@ -270,9 +270,14 @@ func (hc *HttpClient) requestBackendApi() *define.Response {
|
||||
response.Seq++
|
||||
response.RequestCount++
|
||||
if response.RestyResponse, err = hc.request.Send(); nil != err {
|
||||
errType := define.RequestFailTypeSend
|
||||
if strings.Contains(strings.ToLower(err.Error()), "client.timeout exceeded while awaiting headers") {
|
||||
// 请求超时
|
||||
errType = define.RequestFailTypeTimeoutError
|
||||
}
|
||||
response.FailInfo = &define.ResponseFailInfo{
|
||||
Type: define.RequestFailTypeSend,
|
||||
Message: "response instance is nil",
|
||||
Type: errType,
|
||||
Message: err.Error(),
|
||||
}
|
||||
time.Sleep(time.Duration(hc.reqConfig.RetryRule.RetryTimeInterval) * time.Millisecond)
|
||||
continue
|
||||
@ -291,8 +296,13 @@ func (hc *HttpClient) requestBackendApi() *define.Response {
|
||||
hc.fillResponseCookie(response)
|
||||
hc.fillResponseBody(response)
|
||||
if response.HttpCode != http.StatusOK {
|
||||
errType := define.RequestFailTypeServerError
|
||||
if response.HttpCode/100 == 4 {
|
||||
// 客户端错误
|
||||
errType = define.RequestFailTypeClientRequestInvalidError
|
||||
}
|
||||
response.FailInfo = &define.ResponseFailInfo{
|
||||
Type: define.RequestFailTypeServerError,
|
||||
Type: errType,
|
||||
Message: "http code is " + response.HttpCodeStatus + ", not success",
|
||||
}
|
||||
time.Sleep(time.Duration(hc.reqConfig.RetryRule.RetryTimeInterval) * time.Millisecond)
|
||||
|
Reference in New Issue
Block a user