|
|
@@ -84,7 +84,11 @@ func (c *HttpClient) responseInterceptor(response *Response, retry func(*string)
|
|
|
tokenStr := (*c.reLogin)()
|
|
|
retryBody, err := retry(&tokenStr)
|
|
|
if err != nil {
|
|
|
- zap.L().Warn("http retry 失败", zap.String("token", tokenStr), zap.String("err", err.Error()))
|
|
|
+ zap.L().Warn("http retry 失败(401 重新登录后重试)",
|
|
|
+ zap.Int("tokenLen", len(tokenStr)), // 避免明文记录 token,仅记录长度
|
|
|
+ zap.Int("originStatusCode", response.StatusCode),
|
|
|
+ zap.String("err", err.Error()),
|
|
|
+ )
|
|
|
return response
|
|
|
}
|
|
|
return retryBody
|
|
|
@@ -111,7 +115,11 @@ func (c *HttpClient) HttpGet(url string, params *url.Values, opt *HttpClientOpti
|
|
|
finalURL,
|
|
|
nil)
|
|
|
if err != nil {
|
|
|
- zap.L().Error("NewRequest failed.", zap.String("err", err.Error()))
|
|
|
+ zap.L().Error("[HttpGet] NewRequest failed.",
|
|
|
+ zap.String("method", http.MethodGet),
|
|
|
+ zap.String("url", finalURL),
|
|
|
+ zap.String("err", err.Error()),
|
|
|
+ )
|
|
|
return nil, err
|
|
|
}
|
|
|
|
|
|
@@ -135,13 +143,24 @@ func (c *HttpClient) HttpGet(url string, params *url.Values, opt *HttpClientOpti
|
|
|
client := &http.Client{Timeout: timeout * time.Second}
|
|
|
resp, err := client.Do(req)
|
|
|
if err != nil {
|
|
|
- zap.L().Error("Do Send failed.", zap.String("err", err.Error()))
|
|
|
+ zap.L().Error("[HttpGet] Do Send failed.",
|
|
|
+ zap.String("method", http.MethodGet),
|
|
|
+ zap.String("url", finalURL),
|
|
|
+ zap.Duration("timeout", timeout*time.Second),
|
|
|
+ zap.String("err", err.Error()),
|
|
|
+ )
|
|
|
return nil, err
|
|
|
}
|
|
|
defer resp.Body.Close()
|
|
|
|
|
|
respBody, err := io.ReadAll(resp.Body)
|
|
|
if err != nil {
|
|
|
+ zap.L().Error("[HttpGet] Read response body failed.",
|
|
|
+ zap.String("method", http.MethodGet),
|
|
|
+ zap.String("url", finalURL),
|
|
|
+ zap.String("status", resp.Status),
|
|
|
+ zap.String("err", err.Error()),
|
|
|
+ )
|
|
|
return nil, err
|
|
|
}
|
|
|
|
|
|
@@ -161,8 +180,14 @@ func (c *HttpClient) HttpGet(url string, params *url.Values, opt *HttpClientOpti
|
|
|
|
|
|
// 应答失败,直接返回
|
|
|
if response.StatusCode != 200 {
|
|
|
- zap.L().Warn("[HttpGet] Response failed", zap.String("Status", response.Status), zap.String("Body", string(response.Body)))
|
|
|
- return response, fmt.Errorf("[HttpGet] Response failed")
|
|
|
+ zap.L().Warn("[HttpGet] Response failed",
|
|
|
+ zap.String("method", http.MethodGet),
|
|
|
+ zap.String("url", finalURL),
|
|
|
+ zap.String("status", response.Status),
|
|
|
+ zap.Int("statusCode", response.StatusCode),
|
|
|
+ zap.String("body", string(response.Body)),
|
|
|
+ )
|
|
|
+ return response, fmt.Errorf("[HttpGet] Response failed, url=%s, status=%s", finalURL, response.Status)
|
|
|
}
|
|
|
|
|
|
return c.responseInterceptor(response, reqFunc), nil
|
|
|
@@ -211,11 +236,16 @@ func (c *HttpClient) HttpPost(url string, body any, opt *HttpClientOptions) (*Re
|
|
|
// 转换body数据
|
|
|
payload, err := toPostBody(body)
|
|
|
if err != nil {
|
|
|
- zap.L().Error("to PostBody failed.", zap.String("err", err.Error()))
|
|
|
+ zap.L().Error("[HttpPost] to PostBody failed.",
|
|
|
+ zap.String("method", http.MethodPost),
|
|
|
+ zap.String("url", url),
|
|
|
+ zap.String("bodyType", fmt.Sprintf("%T", body)),
|
|
|
+ zap.String("err", err.Error()),
|
|
|
+ )
|
|
|
return nil, err
|
|
|
}
|
|
|
|
|
|
- zap.L().Debug("HttpPost", zap.String("url", url))
|
|
|
+ zap.L().Debug("HttpPost", zap.String("url", url), zap.String("contentType", payload.ContentType))
|
|
|
|
|
|
// 创建请求
|
|
|
req, err := http.NewRequest(
|
|
|
@@ -223,7 +253,12 @@ func (c *HttpClient) HttpPost(url string, body any, opt *HttpClientOptions) (*Re
|
|
|
url,
|
|
|
payload.Reader)
|
|
|
if err != nil {
|
|
|
- zap.L().Error("NewRequest failed.", zap.String("err", err.Error()))
|
|
|
+ zap.L().Error("[HttpPost] NewRequest failed.",
|
|
|
+ zap.String("method", http.MethodPost),
|
|
|
+ zap.String("url", url),
|
|
|
+ zap.String("contentType", payload.ContentType),
|
|
|
+ zap.String("err", err.Error()),
|
|
|
+ )
|
|
|
return nil, err
|
|
|
}
|
|
|
|
|
|
@@ -250,13 +285,25 @@ func (c *HttpClient) HttpPost(url string, body any, opt *HttpClientOptions) (*Re
|
|
|
client := &http.Client{Timeout: timeout * time.Second}
|
|
|
resp, err := client.Do(req)
|
|
|
if err != nil {
|
|
|
- zap.L().Error("Do Send failed.", zap.String("err", err.Error()))
|
|
|
+ zap.L().Error("[HttpPost] Do Send failed.",
|
|
|
+ zap.String("method", http.MethodPost),
|
|
|
+ zap.String("url", url),
|
|
|
+ zap.String("contentType", payload.ContentType),
|
|
|
+ zap.Duration("timeout", timeout*time.Second),
|
|
|
+ zap.String("err", err.Error()),
|
|
|
+ )
|
|
|
return nil, err
|
|
|
}
|
|
|
defer resp.Body.Close()
|
|
|
|
|
|
respBody, err := io.ReadAll(resp.Body)
|
|
|
if err != nil {
|
|
|
+ zap.L().Error("[HttpPost] Read response body failed.",
|
|
|
+ zap.String("method", http.MethodPost),
|
|
|
+ zap.String("url", url),
|
|
|
+ zap.String("status", resp.Status),
|
|
|
+ zap.String("err", err.Error()),
|
|
|
+ )
|
|
|
return nil, err
|
|
|
}
|
|
|
|
|
|
@@ -275,8 +322,15 @@ func (c *HttpClient) HttpPost(url string, body any, opt *HttpClientOptions) (*Re
|
|
|
|
|
|
// 应答失败,直接返回
|
|
|
if response.StatusCode != 200 {
|
|
|
- zap.L().Warn("[HttpPost] Response failed", zap.String("Status", response.Status), zap.String("Body", string(response.Body)))
|
|
|
- return response, fmt.Errorf("[HttpPost] Response failed")
|
|
|
+ zap.L().Warn("[HttpPost] Response failed",
|
|
|
+ zap.String("method", http.MethodPost),
|
|
|
+ zap.String("url", url),
|
|
|
+ zap.String("contentType", payload.ContentType),
|
|
|
+ zap.String("status", response.Status),
|
|
|
+ zap.Int("statusCode", response.StatusCode),
|
|
|
+ zap.String("body", string(response.Body)),
|
|
|
+ )
|
|
|
+ return response, fmt.Errorf("[HttpPost] Response failed, url=%s, status=%s", url, response.Status)
|
|
|
}
|
|
|
|
|
|
return c.responseInterceptor(response, reqFunc), nil
|