]> 127.0.0.1 Git - part/.git/commitdiff
Improve v0.23.12
authorqydysky <32743305+qydysky@users.noreply.github.com>
Sat, 4 Mar 2023 15:59:29 +0000 (23:59 +0800)
committerqydysky <32743305+qydysky@users.noreply.github.com>
Sat, 4 Mar 2023 15:59:29 +0000 (23:59 +0800)
reqf/Reqf.go

index 0e4fbb4baffceb63cb39b0b08d3a0ccddbbd3c42..3f7caa4f0a305bb85b4226e4f5c97a10c693bcf0 100644 (file)
@@ -43,9 +43,10 @@ type Rval struct {
 }
 
 type Req struct {
-       Respon   []byte
-       Response *http.Response
-       UsedTime time.Duration
+       Respon    []byte
+       responBuf *bytes.Buffer
+       Response  *http.Response
+       UsedTime  time.Duration
 
        cancelFs []func()
        cancel   *signal.Signal
@@ -65,7 +66,10 @@ func New() *Req {
 func (t *Req) Reqf(val Rval) error {
        t.l.Lock()
 
-       t.Respon = []byte{}
+       t.Respon = t.Respon[:0]
+       if t.responBuf == nil {
+               t.responBuf = new(bytes.Buffer)
+       }
        t.Response = nil
        t.UsedTime = 0
        t.cancelFs = []func(){}
@@ -237,7 +241,6 @@ func (t *Req) Reqf_1(val Rval) (err error) {
                err = errors.New(strconv.Itoa(resp.StatusCode))
        }
 
-       var responBuf *bytes.Buffer
        var ws []io.Writer
        if val.SaveToPath != "" {
                t.responFile, e = os.Create(val.SaveToPath)
@@ -254,10 +257,8 @@ func (t *Req) Reqf_1(val Rval) (err error) {
                t.cancelFs = append(t.cancelFs, func() { val.SaveToPipeWriter.Close() })
        }
        if !val.NoResponse {
-               if responBuf == nil {
-                       responBuf = new(bytes.Buffer)
-               }
-               ws = append(ws, responBuf)
+               t.responBuf.Reset()
+               ws = append(ws, t.responBuf)
        }
 
        w := io.MultiWriter(ws...)
@@ -302,8 +303,8 @@ func (t *Req) Reqf_1(val Rval) (err error) {
 
        resp.Body.Close()
 
-       if responBuf != nil {
-               t.Respon = responBuf.Bytes()
+       if t.responBuf != nil {
+               t.Respon = t.responBuf.Bytes()
        }
 
        return