package com.app.mvc.http;
/**
* http客户端工厂方法,支持同步异步以及https客户端创建
* Created by jimin on 16/03/10.
*/
public class HttpClients {
/**
* 一些常用的 timeout 值,尽量使用这些常量,如果这些常量不满足,再考虑使用自定义的 timeout 值
*/
public static final int TIMEOUT_SHORT = 5;
public static final int TIMEOUT_MEDIUM = 30;
public static final int TIMEOUT_LONG = 120;
public static final int TIMEOUT_VERY_LONG = 300;
/**
* 获取同步http客户端
*
* @return AbstractHttpClient
*/
public static AbstractHttpClient syncClient() {
return new SyncHttpClient();
}
/**
* 获取同步http客户端
*
* @param connTimeout int
* @param soTimeout int
* @return AbstractHttpClient
*/
public static AbstractHttpClient syncClient(int connTimeout, int soTimeout) {
return new SyncHttpClient().connectionTimeout(connTimeout).soTimeout(soTimeout);
}
/**
* 获取异步http客户端
*
* @param connTimeout int
* @param soTimeout int
* @return AbstractHttpClient
*/
public static AbstractHttpClient asyncClient(int connTimeout, int soTimeout) {
return new AsyncHttpClient().connectionTimeout(connTimeout).soTimeout(soTimeout);
}
/**
* 获取异步http客户端
*
* @return AbstractHttpClient
*/
public static AbstractHttpClient asyncClient() {
return new AsyncHttpClient();
}
/**
* 关闭客户端资源,关闭后将不可再使用异步客户端
*/
public static void shutdownHttpClient() {
AsyncHttpClient.threadPool.shutdown();
}
}