优化response,改为小写,避免直接暴露
This commit is contained in:
@@ -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
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user