package com.mashape.unirest.http.options; import java.util.HashMap; import java.util.Map; import local.org.apache.http.client.config.RequestConfig; import local.org.apache.http.impl.client.HttpClientBuilder; import local.org.apache.http.impl.nio.client.CloseableHttpAsyncClient; import local.org.apache.http.impl.nio.client.HttpAsyncClientBuilder; public class Options { public static final long CONNECTION_TIMEOUT = 10000; private static final long SOCKET_TIMEOUT = 60000; private static Map<Option, Object> options = new HashMap<Option, Object>(); public static void setOption(Option option, Object value) { options.put(option, value); } public static Object getOption(Option option) { return options.get(option); } static { refresh(); } public static void refresh() { // Load timeouts Object connectionTimeout = Options.getOption(Option.CONNECTION_TIMEOUT); if (connectionTimeout == null) connectionTimeout = CONNECTION_TIMEOUT; Object socketTimeout = Options.getOption(Option.SOCKET_TIMEOUT); if (socketTimeout == null) socketTimeout = SOCKET_TIMEOUT; // Create common default configuration RequestConfig clientConfig = RequestConfig.custom().setConnectTimeout(((Long) connectionTimeout).intValue()).setSocketTimeout(((Long) socketTimeout).intValue()).setConnectionRequestTimeout(((Long)socketTimeout).intValue()).build(); // Create clients setOption(Option.HTTPCLIENT, HttpClientBuilder.create().setDefaultRequestConfig(clientConfig).build()); CloseableHttpAsyncClient asyncClient = HttpAsyncClientBuilder.create().setDefaultRequestConfig(clientConfig).build(); setOption(Option.ASYNCHTTPCLIENT, asyncClient); } }