code: @Override
      protected RemoteInvocationResult doExecuteRequest(
              HttpInvokerClientConfiguration config, ByteArrayOutputStream baos)
              throws IOException, ClassNotFoundException {
  
          PostMethod postMethod = createPostMethod(config);
          try {
              setRequestBody(config, postMethod, baos);
              executePostMethod(config, getHttpClient(), postMethod);
              validateResponse(config, postMethod);
              InputStream responseBody = getResponseBody(config, postMethod);
              return readRemoteInvocationResult(responseBody, config.getCodebaseUrl());
          }
          finally {
              // Need to explicitly release because it might be pooled.
              postMethod.releaseConnection();
          }
      }
docs: Execute the given request through Commons HttpClient.
  <p>This method implements the basic processing workflow:
  The actual work happens in this class's template methods.
  @see #createPostMethod
  @see #setRequestBody
  @see #executePostMethod
  @see #validateResponse
  @see #getResponseBody