All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.nemerosa.httpclient.Client Maven / Gradle / Ivy

package net.nemerosa.httpclient;

import org.apache.http.HttpEntity;
import org.apache.http.HttpHost;
import org.apache.http.client.methods.HttpRequestBase;
import org.apache.http.client.protocol.HttpClientContext;
import org.apache.http.impl.client.CloseableHttpClient;

import java.net.URL;
import java.util.Map;

public interface Client {

    URL getUrl();

     T get(ResponseParser responseParser, String path, Object... parameters);

     T delete(ResponseParser responseParser, String path, Object... parameters);

     T post(ResponseParser responseParser, HttpEntity data, String path, Object... parameters);

     T put(ResponseParser responseParser, HttpEntity data, String path, Object... parameters);

     T upload(ResponseParser responseParser, String name, Document file, String fileName, String path, Object... parameters);

    /**
     * Uploads a document.
     *
     * @param responseParser Parser for the response
     * @param file           Document to upload
     * @param path           Path to upload to
     * @param parameters     Parameters for the path
     * @param             Type of the response
     * @return Parsed response
     */
     T upload(ResponseParser responseParser, Document file, String path, Object... parameters);

    /**
     * With some headers
     */
    Client withHeader(String name, String value);

    /**
     * With some headers
     */
    Client withHeaders(Map headers);

    /**
     * Downloads a document
     */
    Document download(String path, Object... parameters);

     T request(HttpRequestBase request, final ResponseParser responseParser);

    /**
     * Underlying HTTP client
     */
    CloseableHttpClient getHttpClient();

    /**
     * HTTP host
     */
    HttpHost getHttpHost();

    /**
     * HTTP call context
     */
    HttpClientContext getHttpClientContext();

    /**
     * Gets the logger
     */
    ClientLogger getClientLogger();
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy