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

update

上级 ea91b252
...@@ -277,16 +277,18 @@ func (req *Request) send(ctx context.Context, body io.Reader, buf *bytes.Buffer) ...@@ -277,16 +277,18 @@ func (req *Request) send(ctx context.Context, body io.Reader, buf *bytes.Buffer)
req.request.Header.Add(k, v) req.request.Header.Add(k, v)
} }
} }
req.request.Header.Add(ctxUtils.HeaderXRequestIDKey, ctxUtils.CtxRequestID(ctx))
if req.timeout < 1 {
req.timeout = defaultTimeout
}
logger.Info("[httpCli] req", logger.Info("[httpCli] req",
logger.Any("method", req.method), logger.Any("method", req.method),
logger.Any("url", req.url), logger.Any("url", req.url),
logger.Any("header", req.request.Header), logger.Any("header", req.request.Header),
logger.Any("body", buf.String()), logger.Any("body", buf.String()),
ctxUtils.CtxTraceIDField(ctx)) 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} client := http.Client{Timeout: req.timeout}
resp := &Response{ resp := &Response{
Header: make(http.Header), Header: make(http.Header),
......
package httpUtils
import (
"net/http"
"time"
)
type Request struct {
method string
url string
params map[string]interface{}
headers map[string]string
body any
bodyJSON any
timeout time.Duration
retry uint
request *http.Request
response *http.Response
}
func New() *Request {
return &Request{}
}
func (req *Request) SetURL(path string) *Request {
req.url = path
return req
}
func (req *Request) SetParams(params map[string]any) *Request {
if req.params == nil {
req.params = params
} else {
for k, v := range params {
req.params[k] = v
}
}
return req
}
func (req *Request) SetParam(k string, v interface{}) *Request {
if req.params == nil {
req.params = make(map[string]interface{})
}
req.params[k] = v
return req
}
func (req *Request) SetBody(body interface{}) *Request {
switch v := body.(type) {
case string:
req.body = v
case []byte:
req.body = string(v)
default:
req.bodyJSON = body
}
return req
}
func (req *Request) SetHeader(k, v string) *Request {
if req.headers == nil {
req.headers = make(map[string]string)
}
req.headers[k] = v
return req
}
func (req *Request) SetTimeout(t time.Duration) *Request {
req.timeout = t
return req
}
func (req *Request) SetRetry(retry uint) *Request {
req.retry = retry
return req
}
func (req *Request) SetContentType(a string) *Request {
req.SetHeader("Content-Type", a)
return req
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论