code: func prepareRequest(host, serviceName, methodName string, md metadata.MD, contentLength int, inf, outf Format, options *Options) *http.Request {
  	if host == "" {
  		panic("Host is not set")
  	}
  	req := &http.Request{
  		Method: "POST",
  		URL: &url.URL{
  			Scheme: "https",
  			Host:   host,
  			Path:   fmt.Sprintf("/prpc/%s/%s", serviceName, methodName),
  		},
  		Header: http.Header(md.Copy()),
  	}
  	if options.Insecure {
  		req.URL.Scheme = "http"
  	}
  
  	// Set headers.
  	req.Header.Set("Content-Type", inf.MediaType())
  	req.Header.Set("Accept", outf.MediaType())
  	userAgent := options.UserAgent
  	if userAgent == "" {
  		userAgent = DefaultUserAgent
  	}
  	req.Header.Set("User-Agent", userAgent)
  	req.ContentLength = int64(contentLength)
  	req.Header.Set("Content-Length", strconv.Itoa(contentLength))
  	// TODO(nodir): add "Accept-Encoding: gzip" when pRPC server supports it.
  	return req
  }
docs: // prepareRequest creates an HTTP request for an RPC,
  // except it does not set the request body.