code: func NewRequestReader(c *http.Client, r *http.Request, maxfail uint32, totalsize int64) io.ReadCloser {
  	return &requestReader{client: c, request: r, maxFailures: maxfail, totalSize: totalsize, waitDuration: 5 * time.Second}
  }
docs: // NewRequestReader makes it possible to resume reading a request's body transparently
  // maxfail is the number of times we retry to make requests again (not resumes)
  // totalsize is the total length of the body; auto detect if not provided