code: protected Optional<Response> executePostRequest(URI uri, Object obj, Map<String, Object> headers)
      {
          Invocation.Builder invocation = this.client.target(uri).request(MediaType.APPLICATION_JSON);
          applyHeaders(invocation, headers);
          Response response = invocation.post(Entity.entity(obj, MediaType.APPLICATION_JSON));
          handleResponseError("POST", uri, response);
          logResponse(uri, response);
          return Optional.of(response);
      }
docs: Execute a POST request.
  @param uri The URI to call
  @param obj The object to use for the POST
  @param headers A set of headers to add to the request
  @return The response to the POST