code: protected HTTPResponse submitHTTPRequest(FaxJob faxJob,HTTPRequest httpRequest,FaxActionType faxActionType)
      {
          HTTPResponse httpResponse=null;
          if(httpRequest==null)
          {
              this.throwUnsupportedException();
          }
          else
          {
              //setup default header properties
              Properties headerProperties=httpRequest.getHeaderProperties();
              if(headerProperties==null)
              {
                  headerProperties=new Properties();
                  httpRequest.setHeaderProperties(headerProperties);
              }
              
              //setup resource
              if(httpRequest.getResource()==null)
              {
                  String resource=this.getHTTPResource(faxActionType);
                  httpRequest.setResource(resource);
              }
      
              //setup URL parameters
              if(httpRequest.getParametersText()==null)
              {
                  httpRequest.setParametersText(this.urlParameters);
              }
              
              //get HTTP method
              HTTPMethod httpMethod=this.httpClientConfiguration.getMethod(faxActionType);
              
              //submit HTTP request
              httpResponse=this.submitHTTPRequestImpl(httpRequest,httpMethod);
      
              //validate response status code
              int statusCode=httpResponse.getStatusCode();
              if(statusCode>=400)
              {
                  throw new FaxException("Error while invoking HTTP request, return status code: "+statusCode);
              }
              
              //update fax job
              this.updateFaxJob(faxJob,httpResponse,faxActionType);
          }
          
          return httpResponse;
      }
docs: Submits the HTTP request and returns the HTTP response.
  
  @param   faxJob
  The fax job object
  @param   httpRequest
  The HTTP request to send
  @param   faxActionType
  The fax action type
  @return  The HTTP response