一些优化
This commit is contained in:
@@ -131,26 +131,44 @@ func (c *Curlx) Send(ctx context.Context, p ...Param) (res []byte, httpcode int,
|
|||||||
status := response.StatusCode // 获取状态码,正常是200
|
status := response.StatusCode // 获取状态码,正常是200
|
||||||
|
|
||||||
var body []byte
|
var body []byte
|
||||||
switch response.Header.Get("Content-Encoding") {
|
// switch response.Header.Get("Content-Encoding") {
|
||||||
case "gzip":
|
// case "gzip":
|
||||||
|
// reader, err := gzip.NewReader(response.Body)
|
||||||
|
// if err != nil {
|
||||||
|
// return nil, status, err
|
||||||
|
// }
|
||||||
|
// for {
|
||||||
|
// buf := make([]byte, 1024)
|
||||||
|
// n, err := reader.Read(buf)
|
||||||
|
// if err != nil && err != io.EOF {
|
||||||
|
// panic(err)
|
||||||
|
// }
|
||||||
|
// if n == 0 {
|
||||||
|
// break
|
||||||
|
// }
|
||||||
|
// body = append(body, buf...)
|
||||||
|
// }
|
||||||
|
// default:
|
||||||
|
// body, _ = io.ReadAll(response.Body)
|
||||||
|
// }
|
||||||
|
|
||||||
|
if response.Header.Get("Content-Encoding") == "gzip" {
|
||||||
reader, err := gzip.NewReader(response.Body)
|
reader, err := gzip.NewReader(response.Body)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, status, err
|
return nil, response.StatusCode, err
|
||||||
}
|
}
|
||||||
for {
|
body, err = io.ReadAll(reader)
|
||||||
buf := make([]byte, 1024)
|
if err != nil {
|
||||||
n, err := reader.Read(buf)
|
return nil, response.StatusCode, err
|
||||||
if err != nil && err != io.EOF {
|
}
|
||||||
panic(err)
|
defer reader.Close()
|
||||||
}
|
} else {
|
||||||
if n == 0 {
|
body, err = io.ReadAll(response.Body)
|
||||||
break
|
if err != nil {
|
||||||
}
|
return nil, response.StatusCode, err
|
||||||
body = append(body, buf...)
|
|
||||||
}
|
}
|
||||||
default:
|
|
||||||
body, _ = io.ReadAll(response.Body)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
c.opts.Logger.Infof(ctx, "curlx.Send body:%s", string(body))
|
c.opts.Logger.Infof(ctx, "curlx.Send body:%s", string(body))
|
||||||
return body, status, nil
|
return body, status, nil
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user