code: func (req *Request) ContinueReadBody(r *bufio.Reader, maxBodySize int) error {
  	var err error
  	contentLength := req.Header.realContentLength()
  	if contentLength > 0 {
  		if maxBodySize > 0 && contentLength > maxBodySize {
  			return ErrBodyTooLarge
  		}
  
  		// Pre-read multipart form data of known length.
  		// This way we limit memory usage for large file uploads, since their contents
  		// is streamed into temporary files if file size exceeds defaultMaxInMemoryFileSize.
  		req.multipartFormBoundary = string(req.Header.MultipartFormBoundary())
  		if len(req.multipartFormBoundary) > 0 && len(req.Header.peek(strContentEncoding)) == 0 {
  			req.multipartForm, err = readMultipartForm(r, req.multipartFormBoundary, contentLength, defaultMaxInMemoryFileSize)
  			if err != nil {
  				req.Reset()
  			}
  			return err
  		}
  	}
  
  	if contentLength == -2 {
  		// identity body has no sense for http requests, since
  		// the end of body is determined by connection close.
  		// So just ignore request body for requests without
  		// 'Content-Length' and 'Transfer-Encoding' headers.
  		req.Header.SetContentLength(0)
  		return nil
  	}
  
  	bodyBuf := req.bodyBuffer()
  	bodyBuf.Reset()
  	bodyBuf.B, err = readBody(r, contentLength, maxBodySize, bodyBuf.B)
  	if err != nil {
  		req.Reset()
  		return err
  	}
  	req.Header.SetContentLength(len(bodyBuf.B))
  	return nil
  }
docs: // ContinueReadBody reads request body if request header contains
  // 'Expect: 100-continue'.
  //
  // The caller must send StatusContinue response before calling this method.
  //
  // If maxBodySize > 0 and the body size exceeds maxBodySize,
  // then ErrBodyTooLarge is returned.