提交 d316ccc8 authored 作者: mooncake9527's avatar mooncake9527

http cli

上级 ce9025b4
......@@ -255,7 +255,7 @@ func (req *Request) push(ctx context.Context) (*Response, error) {
buf = bytes.NewBufferString(req.body)
}
logger.Info("httpcli req", logger.String("body", buf.String()), ctxUtils.CtxTraceIDField(ctx))
logger.Info("httpCli req", logger.String("body", buf.String()), ctxUtils.CtxTraceIDField(ctx))
return req.send(ctx, buf, buf)
}
......@@ -291,7 +291,6 @@ func getRequestBody(buf *bytes.Buffer, maxLen int) []byte {
}
func (req *Request) send(ctx context.Context, body io.Reader, buf *bytes.Buffer) (*Response, error) {
logger.Info("httpcli req", logger.String("url", req.url), ctxUtils.CtxTraceIDField(ctx))
req.request, req.err = http.NewRequest(req.method, req.url, body)
if req.err != nil {
return nil, req.err
......@@ -303,23 +302,19 @@ func (req *Request) send(ctx context.Context, body io.Reader, buf *bytes.Buffer)
if req.customRequest != nil {
req.customRequest(req.request, buf)
}
if req.headers != nil {
for k, v := range req.headers {
req.request.Header.Add(k, v)
}
}
logger.Info("httpCli req", logger.Any("url", req.url), logger.Any("header", req.request.Header), logger.Any("body", buf.String()), ctxUtils.CtxTraceIDField(ctx))
req.request.Header.Add(ctxUtils.HeaderXRequestIDKey, ctxUtils.CtxRequestID(ctx))
if req.timeout < 1 {
req.timeout = defaultTimeout
}
client := http.Client{Timeout: req.timeout}
resp := new(Response)
resp.Header = make(http.Header)
ctx, cancel := context.WithTimeout(ctx, time.Second*20)
defer cancel()
var err error
......@@ -327,7 +322,7 @@ func (req *Request) send(ctx context.Context, body io.Reader, buf *bytes.Buffer)
err = retry.Retry(func() error {
response, err := client.Do(req.request)
if err != nil {
logger.Info("httpcli fail", logger.Any("err", err), ctxUtils.CtxTraceIDField(ctx))
logger.Info("httpCli fail", logger.Any("err", err), ctxUtils.CtxTraceIDField(ctx))
return xerror.Wrap(err, "client do")
}
if response != nil {
......@@ -342,8 +337,8 @@ func (req *Request) send(ctx context.Context, body io.Reader, buf *bytes.Buffer)
return xerror.New(err.Error())
}
bodyBuf := bytes.NewBuffer(body)
logger.Info("httpCli rsp", logger.Any("header", resp.Header), logger.Any("body", bodyBuf.String()), ctxUtils.CtxTraceIDField(ctx))
ctxUtils.SetVal(ctx, fmt.Sprintf("oApiRsp-%s", ctxUtils.CtxRequestID(ctx)), bodyBuf.Bytes())
logger.Info("httpcli rsp", logger.Any("body", bodyBuf.String()), ctxUtils.CtxTraceIDField(ctx))
if body != nil {
resp.Body = io.NopCloser(bodyBuf)
}
......@@ -380,8 +375,8 @@ func (req *Request) send(ctx context.Context, body io.Reader, buf *bytes.Buffer)
err = xerror.New(e.Error())
}
bodyBuf := bytes.NewBuffer(body)
logger.Info("httpCli rsp", logger.Any("header", resp.Header), logger.Any("body", bodyBuf.String()), ctxUtils.CtxTraceIDField(ctx))
ctxUtils.SetVal(ctx, fmt.Sprintf("oApiRsp-%s", ctxUtils.CtxRequestID(ctx)), bodyBuf.Bytes())
logger.Info("httpcli rsp", logger.Any("body", bodyBuf.String()), ctxUtils.CtxTraceIDField(ctx))
if body != nil {
resp.Body = io.NopCloser(bodyBuf)
}
......@@ -389,7 +384,7 @@ func (req *Request) send(ctx context.Context, body io.Reader, buf *bytes.Buffer)
}
if err != nil {
logger.Error("httpcli fail", logger.Any("err", err), ctxUtils.CtxTraceIDField(ctx))
logger.Error("httpCli fail", logger.Any("err", err), ctxUtils.CtxTraceIDField(ctx))
}
req.response = resp
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论