Browse Source

optimize reading http request body

kevin 4 năm trước cách đây
mục cha
commit
40895ba8d9
1 tập tin đã thay đổi với 8 bổ sung1 xóa
  1. 8 1
      rest/handler/cryptionhandler.go

+ 8 - 1
rest/handler/cryptionhandler.go

@@ -42,7 +42,14 @@ func decryptBody(key []byte, r *http.Request) error {
 		return errContentLengthExceeded
 		return errContentLengthExceeded
 	}
 	}
 
 
-	content, err := ioutil.ReadAll(io.LimitReader(r.Body, maxBytes))
+	var content []byte
+	var err error
+	if r.ContentLength > 0 {
+		content = make([]byte, r.ContentLength, r.ContentLength)
+		_, err = io.ReadFull(r.Body, content)
+	} else {
+		content, err = ioutil.ReadAll(io.LimitReader(r.Body, maxBytes))
+	}
 	if err != nil {
 	if err != nil {
 		return err
 		return err
 	}
 	}