private <T> T postForEntity(
            String url,
            Object request,
            Object[] queryParams,
            Object responseType,
            Function<Builder, T> postWithEntity,
            Object... uriVariables) {
        URI uri = null;
        try {
            uri = getURIBuilder(root + url, queryParams).build(uriVariables);
            Builder webResourceBuilder = requestHandler.getWebResourceBuilder(uri, request);
            if (responseType == null) {
                webResourceBuilder.post();
                return null;
            }
            return postWithEntity.apply(webResourceBuilder);
        } catch (UniformInterfaceException e) {
            handleUniformInterfaceException(e, uri);
        } catch (RuntimeException e) {
            handleRuntimeException(e, uri);
        }
        return null;
    }
Abstract client for the REST server
client/src/main/java/com/netflix/conductor/client/http/ClientBase.java