code: func shouldSendReqContentLength(method string, contentLength int64) bool {
  	if contentLength > 0 {
  		return true
  	}
  	if contentLength < 0 {
  		return false
  	}
  	// For zero bodies, whether we send a content-length depends on the method.
  	// It also kinda doesn't matter for http2 either way, with END_STREAM.
  	switch method {
  	case "POST", "PUT", "PATCH":
  		return true
  	default:
  		return false
  	}
  }
docs: // shouldSendReqContentLength reports whether the http2.Transport should send
  // a "content-length" request header. This logic is basically a copy of the net/http
  // transferWriter.shouldSendContentLength.
  // The contentLength is the corrected contentLength (so 0 means actually 0, not unknown).
  // -1 means unknown.