code: private HttpRequest buildHttpRequest(boolean usingHead) throws IOException {
      Preconditions.checkArgument(uploader == null);
      Preconditions.checkArgument(!usingHead || requestMethod.equals(HttpMethods.GET));
      String requestMethodToUse = usingHead ? HttpMethods.HEAD : requestMethod;
      final HttpRequest httpRequest = getAbstractGoogleClient()
          .getRequestFactory().buildRequest(requestMethodToUse, buildHttpRequestUrl(), httpContent);
      new MethodOverride().intercept(httpRequest);
      httpRequest.setParser(getAbstractGoogleClient().getObjectParser());
      // custom methods may use POST with no content but require a Content-Length header
      if (httpContent == null && (requestMethod.equals(HttpMethods.POST)
          || requestMethod.equals(HttpMethods.PUT) || requestMethod.equals(HttpMethods.PATCH))) {
        httpRequest.setContent(new EmptyContent());
      }
      httpRequest.getHeaders().putAll(requestHeaders);
      if (!disableGZipContent) {
        httpRequest.setEncoding(new GZipEncoding());
      }
      final HttpResponseInterceptor responseInterceptor = httpRequest.getResponseInterceptor();
      httpRequest.setResponseInterceptor(new HttpResponseInterceptor() {
  
        public void interceptResponse(HttpResponse response) throws IOException {
          if (responseInterceptor != null) {
            responseInterceptor.interceptResponse(response);
          }
          if (!response.isSuccessStatusCode() && httpRequest.getThrowExceptionOnExecuteError()) {
            throw newExceptionOnError(response);
          }
        }
      });
      return httpRequest;
    }
docs: Create a request suitable for use against this service.