优化response,改为小写,避免直接暴露

This commit is contained in:
Yun
2026-03-04 18:20:31 +08:00
parent f15c882874
commit d3b39ac7be
2 changed files with 37 additions and 34 deletions
+11 -11
View File
@@ -105,8 +105,8 @@ func (c *Curlx) WithAddress(ctx context.Context, addr string) {
*/ */
func (c *Curlx) Send(ctx context.Context, p ...Param) (res []byte, err error) { func (c *Curlx) Send(ctx context.Context, p ...Param) (res []byte, err error) {
resp := c.exec(ctx, p...) resp := c.exec(ctx, p...)
if resp.Err != nil { if resp.err != nil {
return nil, resp.Err return nil, resp.err
} }
defer resp.Close() // 处理完关闭 defer resp.Close() // 处理完关闭
@@ -189,7 +189,7 @@ func (c *Curlx) exec(ctx context.Context, ps ...Param) Response {
err := p.parseMethod() err := p.parseMethod()
if err != nil { if err != nil {
c.opts.Logger.Errorf(ctx, "curlx.sendExec parseMethod err:%v", err) c.opts.Logger.Errorf(ctx, "curlx.sendExec parseMethod err:%v", err)
resp.Err = err resp.err = err
return resp return resp
} }
@@ -197,7 +197,7 @@ func (c *Curlx) exec(ctx context.Context, ps ...Param) Response {
err = p.parseUrl() err = p.parseUrl()
if err != nil { if err != nil {
c.opts.Logger.Errorf(ctx, "curlx.sendExec parseUrl err:%v", err) c.opts.Logger.Errorf(ctx, "curlx.sendExec parseUrl err:%v", err)
resp.Err = err resp.err = err
return resp return resp
} }
@@ -205,7 +205,7 @@ func (c *Curlx) exec(ctx context.Context, ps ...Param) Response {
reqParams, err := p.parseParams() reqParams, err := p.parseParams()
if err != nil { if err != nil {
c.opts.Logger.Errorf(ctx, "curlx.sendExec parseParams err:%v", err) c.opts.Logger.Errorf(ctx, "curlx.sendExec parseParams err:%v", err)
resp.Err = err resp.err = err
return resp return resp
} }
@@ -217,12 +217,12 @@ func (c *Curlx) exec(ctx context.Context, ps ...Param) Response {
) )
if err != nil { if err != nil {
c.opts.Logger.Errorf(ctx, "curlx.sendExec NewRequest err:%v", err) c.opts.Logger.Errorf(ctx, "curlx.sendExec NewRequest err:%v", err)
resp.Err = err resp.err = err
return resp return resp
} }
c.opts.Logger.Infof(ctx, "curlx.sendExec request:%+v", request) c.opts.Logger.Infof(ctx, "curlx.sendExec request:%+v", request)
resp.Request = request resp.request = request
// 这里指定要访问的HOST,到时候服务器获取主机是获取到这个 // 这里指定要访问的HOST,到时候服务器获取主机是获取到这个
// request.Host = "api.hk.blueoceantech.co" // request.Host = "api.hk.blueoceantech.co"
@@ -240,10 +240,10 @@ func (c *Curlx) exec(ctx context.Context, ps ...Param) Response {
response, err := client.Do(request) response, err := client.Do(request)
if err != nil { if err != nil {
c.opts.Logger.Errorf(ctx, "curlx.sendExec client.Do err:%v", err) c.opts.Logger.Errorf(ctx, "curlx.sendExec client.Do err:%v", err)
resp.Err = err resp.err = err
return resp return resp
} }
resp.Response = response resp.response = response
return resp return resp
} }
@@ -262,11 +262,11 @@ func (c *Curlx) SendStream(ctx context.Context, ps ...Param) (<-chan string, err
defer cancel() defer cancel()
response := c.exec(ctx, ps...) response := c.exec(ctx, ps...)
if response.Err != nil { if response.err != nil {
return return
} }
defer response.Close() // 处理完关闭 defer response.Close() // 处理完关闭
scanner := bufio.NewScanner(response.Response.Body) scanner := bufio.NewScanner(response.response.Body)
for scanner.Scan() { for scanner.Scan() {
text := scanner.Text() text := scanner.Text()
if text == "" { if text == "" {
+26 -23
View File
@@ -12,43 +12,43 @@ import (
// Response response object // Response response object
type Response struct { type Response struct {
Response *http.Response response *http.Response
Request *http.Request request *http.Request
Body []byte body []byte
Err error err error
} }
func (l *Response) Close() error { func (l *Response) Close() error {
if l.Response.Body != nil { if l.response.Body != nil {
return l.Response.Body.Close() return l.response.Body.Close()
} }
return nil return nil
} }
// GetRequest get request object // GetRequest get request object
func (r *Response) GetRequest() *http.Request { func (r *Response) GetRequest() *http.Request {
return r.Request return r.request
} }
func (r *Response) GetResponse() *http.Response { func (r *Response) GetResponse() *http.Response {
return r.Response return r.response
} }
// GetBody parse response body // GetBody parse response body
func (r *Response) GetBody() ([]byte, error) { func (r *Response) GetBody() ([]byte, error) {
if r.Err != nil { if r.err != nil {
return nil, r.Err return nil, r.err
} }
if r.Body != nil { if r.body != nil {
return r.Body, nil return r.body, nil
} }
if r.Response == nil { if r.response == nil {
return nil, nil return nil, nil
} }
body := []byte{} body := []byte{}
var err error var err error
if r.Response.Header.Get("Content-Encoding") == "gzip" { if r.response.Header.Get("Content-Encoding") == "gzip" {
reader, err := gzip.NewReader(r.Response.Body) reader, err := gzip.NewReader(r.response.Body)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -58,31 +58,31 @@ func (r *Response) GetBody() ([]byte, error) {
return nil, err return nil, err
} }
} else { } else {
body, err = io.ReadAll(r.Response.Body) body, err = io.ReadAll(r.response.Body)
if err != nil { if err != nil {
return nil, err return nil, err
} }
} }
// close body // close body
r.Response.Body.Close() r.response.Body.Close()
r.Body = body r.body = body
return body, err return body, err
} }
func (r Response) GetStatusCode() int { func (r Response) GetStatusCode() int {
if r.Response == nil { if r.response == nil {
return 0 return 0
} }
return r.Response.StatusCode return r.response.StatusCode
} }
// IsTimeout get if request is timeout // IsTimeout get if request is timeout
func (r *Response) IsTimeout() bool { func (r *Response) IsTimeout() bool {
if r.Err == nil { if r.err == nil {
return false return false
} }
netErr, ok := r.Err.(net.Error) netErr, ok := r.err.(net.Error)
if !ok { if !ok {
return false return false
} }
@@ -106,7 +106,10 @@ func (r *Response) GetParsedBody() (*gjson.Result, error) {
// GetHeaders get response headers // GetHeaders get response headers
func (r *Response) GetHeaders() map[string][]string { func (r *Response) GetHeaders() map[string][]string {
return r.Response.Header if r.response == nil {
return nil
}
return r.response.Header
} }
// GetHeader get response header // GetHeader get response header