class PaloHttpClient {

    private final RestClient client;

    public PaloHttpClient(HugeConfig config, String database) {
        String url = this.buildUrl(config, database);
        String username = config.get(PaloOptions.PALO_USERNAME);
        String password = config.get(PaloOptions.PALO_PASSWORD);
        Integer timeout = config.get(PaloOptions.PALO_HTTP_TIMEOUT);

        this.client = new Client(url, username, password, timeout);
    }

    private String buildUrl(HugeConfig config, String database) {<FILL_FUNCTION_BODY>}

    public void bulkLoadAsync(String table, String body, String label) {
        // Format path
        String path = table + "/_load";
        // Format headers
        RestHeaders headers = new RestHeaders();
        headers.add("Expect", "100-continue");
        // Format params
        Map<String, Object> params = ImmutableMap.of("label", label);
        // Send request
        this.client.put(path, body, headers, params);
    }

    private static class Client extends AbstractRestClient {

        private static final int SECOND = 1000;

        public Client(String url, String user, String password, int timeout) {
            super(url, user, password, timeout * SECOND);
        }

        @Override
        protected void checkStatus(Response response, int... statuses) {
            // pass
        }
    }
}

        String host = config.get(PaloOptions.PALO_HOST);
        Integer port = config.get(PaloOptions.PALO_HTTP_PORT);
        return String.format("http://%s:%s/api/%s/", host, port, database);
    
<no_super_class>