code: func dumpReqBody(req *http.Request) ([]byte, error) {
  	if req.Body == nil {
  		return nil, nil
  	}
  	var save io.ReadCloser
  	var err error
  	save, req.Body, err = drainBody(req.Body)
  	if err != nil {
  		return nil, err
  	}
  	var b bytes.Buffer
  	var dest io.Writer = &b
  	chunked := len(req.TransferEncoding) > 0 && req.TransferEncoding[0] == "chunked"
  	if chunked {
  		dest = httputil.NewChunkedWriter(dest)
  	}
  	_, err = io.Copy(dest, req.Body)
  	if chunked {
  		dest.(io.Closer).Close()
  		io.WriteString(&b, "\r\n")
  	}
  	req.Body = save
  	return b.Bytes(), err
  }
docs: // Dump request body, strongly inspired from httputil.DumpRequest