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

no.bouvet.jsonclient.JsonClient Maven / Gradle / Ivy

package no.bouvet.jsonclient;

import com.fasterxml.jackson.databind.ObjectMapper;
import no.bouvet.jsonclient.builders.HttpSSLClientBuilder;
import no.bouvet.jsonclient.http.HttpExecuter;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.impl.client.HttpClientBuilder;

import java.util.List;
import java.util.Map;

public class JsonClient {

    private JsonConverter jsonConverter;
    private HttpClient httpClient;

    public JsonClient() {
        jsonConverter = new JsonConverter();
    }

    public JsonClient(ObjectMapper objectMapper) {
        jsonConverter = new JsonConverter(objectMapper);
    }

    public JsonClient http() {
        httpClient = HttpClientBuilder.create().build();
        return this;
    }

    public JsonClient ssl() {
        httpClient = new HttpSSLClientBuilder().build();
        return this;
    }

    public JsonClient ssl(String username, String password){
        httpClient = new HttpSSLClientBuilder().withAuthentication(username, password).build();
        return this;
    }

    public HttpResponse get(String url) {
        return HttpExecuter.get(httpClient, url);
    }

    public  T get(String url, Class clz) {
        return jsonConverter.toObject(get(url).getEntity(), clz);
    }

    public  List getList(String url, Class clz) {
        return jsonConverter.toList(get(url).getEntity(), clz);
    }

    public  Map getMap(String url, Class clz) {
        return jsonConverter.toMap(get(url).getEntity(), clz);
    }

    public HttpResponse post(String url, Object object) {
        String json = jsonConverter.toJson(object);
        return HttpExecuter.post(httpClient, url, json);
    }

    public  T post(String url, Object object, Class clz) {
        return jsonConverter.toObject(post(url, object).getEntity(), clz);
    }

    public  List postList(String url, Object object, Class clz) {
        return jsonConverter.toList(post(url, object).getEntity(), clz);
    }

    public  List> postListOfList(String url, Object object, Class clz) {
        return jsonConverter.toListOfList(post(url, object).getEntity(), clz);
    }

    public  Map postMap(String url, Object object, Class clz) {
        return jsonConverter.toMap(post(url, object).getEntity(), clz);
    }

    public HttpResponse put(String url, Object object) {
        String json = jsonConverter.toJson(object);
        return HttpExecuter.put(httpClient, url, json);
    }

    public  T put(String url, Object object, Class clz) {
        return jsonConverter.toObject(put(url, object).getEntity(), clz);
    }

    public HttpResponse delete(String url) {
        return HttpExecuter.delete(httpClient, url);
    }

    public  T delete(String url, Class clz) {
        return jsonConverter.toObject(delete(url).getEntity(), clz);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy