code: private  IntuitMessage executeHttpRequest(HttpRequestBase httpRequest, CloseableHttpClient client) throws FMSException {
          CloseableHttpResponse httpResponse = null;
          IntuitMessage intuitMessage = new IntuitMessage();
  
  
          try {
              // prepare HttpHost object
              HttpHost target = new HttpHost(httpRequest.getURI().getHost(), -1, httpRequest.getURI().getScheme());
              httpResponse = client.execute(target, httpRequest);
              LOG.debug("Connection status : " + httpResponse.getStatusLine());
              // set the response elements before close the connection
              setResponseElements(intuitMessage, httpResponse);
              return intuitMessage;
          } catch (ClientProtocolException e) {
              throw new ConfigurationException("Error in Http Protocol definition", e);
          } catch (IOException e) {
              throw new FMSException(e);
          } finally {
              if (httpResponse != null) {
                  try {
                      httpResponse.close();
                  } catch (IOException e) {
                      LOG.warn("Unable to close CloseableHttpResponse .", e);
                  }
              }
              if (client != null) {
                  try {
                      client.close();
                  } catch (Exception e) {
                      LOG.warn("Unable to close CloseableHttpClient connection.", e);
                  }
              }
          }
      }
docs: Executes communication with remote host
  @param httpRequest
  @param client
  @return IntuitMessage
  @throws FMSException