add default httpparams

This commit is contained in:
jinyu 2016-12-03 16:29:05 +08:00
parent 102f37cc77
commit 3692c87ec6
10 changed files with 46 additions and 23 deletions

View File

@ -33,6 +33,7 @@ public abstract class HttpClientFactory {
* 默认的HttpClient * 默认的HttpClient
*/ */
private static volatile HttpClientFactory defaultFactory = newDefaultFactory(); private static volatile HttpClientFactory defaultFactory = newDefaultFactory();
private static volatile HttpParams defaultParams;
/** /**
* NettyHttpClient -> ApacheHttpClient(HttpComponent3&4) -> * NettyHttpClient -> ApacheHttpClient(HttpComponent3&4) ->
@ -85,24 +86,49 @@ public abstract class HttpClientFactory {
} }
/** /**
* 获取HttpClient实例 * 获取默认的HttpParams
* *
* @return * @return
*/ */
public static HttpClient getInstance() { public static HttpParams getDefaultParams() {
return getDefaultFactory().newInstance(); return defaultParams;
}
/**
* Resolve the Http Parameter
*
* @param params
* 请求参数
*/
public static void setDefaultParams(HttpParams params) {
if (params == null) {
throw new IllegalArgumentException("'params' must not be empty");
}
HttpClientFactory.defaultParams = params;
} }
/** /**
* 获取HttpClient实例 * 获取HttpClient实例
* *
* @param params Http参数 * @return
*/
public static HttpClient getInstance() {
return getInstance(HttpClientFactory.defaultParams);
}
/**
* 获取HttpClient实例
*
* @param params
* Http参数
* *
* @return HttpClinet实例 * @return HttpClinet实例
*/ */
public static HttpClient getInstance(HttpParams params) { public static HttpClient getInstance(HttpParams params) {
HttpClientFactory clientFactory = getDefaultFactory(); HttpClientFactory clientFactory = getDefaultFactory();
clientFactory.setDefaultParams(params); if (params != null) {
clientFactory.resolveHttpParams(params);
}
return clientFactory.newInstance(); return clientFactory.newInstance();
} }
@ -112,20 +138,20 @@ public abstract class HttpClientFactory {
* @param params * @param params
* 请求参数 * 请求参数
*/ */
public void setDefaultParams(HttpParams params) { public void resolveHttpParams(HttpParams params){
if (params == null) { if (params == null) {
throw new IllegalArgumentException("'params' must not be empty"); throw new IllegalArgumentException("'params' must not be empty");
} }
resolveHttpParams(params); resolveHttpParams0(params);
} }
/** /**
* Resolve the Http Parameter * Resolve the Http Parameter
* *
* @param params * @param params
* 请求参数 * 请求参数
*/ */
protected abstract void resolveHttpParams(HttpParams params); protected abstract void resolveHttpParams0(HttpParams params);
/** /**
* 获取HttpClient实例 * 获取HttpClient实例

View File

@ -18,7 +18,7 @@ public class SimpleHttpClientFactory extends HttpClientFactory {
private HttpParams params; private HttpParams params;
@Override @Override
protected void resolveHttpParams(HttpParams params) { protected void resolveHttpParams0(HttpParams params) {
this.params = params; this.params = params;
} }

View File

@ -41,7 +41,7 @@ public class HttpComponent3Factory extends HttpClientFactory {
* Resolve Parameter * Resolve Parameter
*/ */
@Override @Override
protected void resolveHttpParams(HttpParams params) { protected void resolveHttpParams0(HttpParams params) {
if (params.getProxy() != null) { if (params.getProxy() != null) {
InetSocketAddress socketAddress = (InetSocketAddress) params InetSocketAddress socketAddress = (InetSocketAddress) params
.getProxy().address(); .getProxy().address();

View File

@ -41,7 +41,7 @@ public class HttpComponent4Factory extends HttpClientFactory {
} }
@Override @Override
protected void resolveHttpParams(HttpParams params) { protected void resolveHttpParams0(HttpParams params) {
httpComponentFactory.setDefaultParams(params); httpComponentFactory.resolveHttpParams(params);
} }
} }

View File

@ -39,10 +39,7 @@ public class HttpComponent4_1Factory extends HttpClientFactory {
} }
@Override @Override
protected void resolveHttpParams(HttpParams params) { protected void resolveHttpParams0(HttpParams params) {
if (params == null) {
throw new IllegalArgumentException("'params' must not be empty");
}
if (params.getProxy() != null) { if (params.getProxy() != null) {
InetSocketAddress socketAddress = (InetSocketAddress) params InetSocketAddress socketAddress = (InetSocketAddress) params
.getProxy().address(); .getProxy().address();

View File

@ -42,7 +42,7 @@ public class HttpComponent4_2Factory extends HttpClientFactory {
} }
@Override @Override
public void resolveHttpParams(HttpParams params) { protected void resolveHttpParams0(HttpParams params) {
clientBuilder.setDefaultRequestConfig(RequestConfig.custom() clientBuilder.setDefaultRequestConfig(RequestConfig.custom()
.setConnectTimeout(params.getConnectTimeout()) .setConnectTimeout(params.getConnectTimeout())
.setConnectionRequestTimeout(params.getReadTimeout()).build()); .setConnectionRequestTimeout(params.getReadTimeout()).build());

View File

@ -46,7 +46,7 @@ public class Netty4HttpClientFactory extends HttpClientFactory {
} }
@Override @Override
protected void resolveHttpParams(HttpParams params) { protected void resolveHttpParams0(HttpParams params) {
this.params = params; this.params = params;
} }

View File

@ -32,7 +32,7 @@ public class OkHttpClient2Factory extends HttpClientFactory {
} }
@Override @Override
protected void resolveHttpParams(HttpParams params) { protected void resolveHttpParams0(HttpParams params) {
okClient.setConnectTimeout(params.getConnectTimeout(), okClient.setConnectTimeout(params.getConnectTimeout(),
TimeUnit.MILLISECONDS); TimeUnit.MILLISECONDS);
okClient.setReadTimeout(params.getReadTimeout(), TimeUnit.MILLISECONDS); okClient.setReadTimeout(params.getReadTimeout(), TimeUnit.MILLISECONDS);

View File

@ -39,7 +39,7 @@ public class OkHttpClient3Factory extends HttpClientFactory {
* *
* */ * */
@Override @Override
protected void resolveHttpParams(HttpParams params) { protected void resolveHttpParams0(HttpParams params) {
clientBuilder.connectTimeout(params.getConnectTimeout(), clientBuilder.connectTimeout(params.getConnectTimeout(),
TimeUnit.MILLISECONDS); TimeUnit.MILLISECONDS);
clientBuilder.readTimeout(params.getReadTimeout(), clientBuilder.readTimeout(params.getReadTimeout(),

View File

@ -27,8 +27,8 @@ public class OkHttpClientFactory extends HttpClientFactory {
} }
@Override @Override
protected void resolveHttpParams(HttpParams params) { protected void resolveHttpParams0(HttpParams params) {
okHttpClientFactory.setDefaultParams(params); okHttpClientFactory.resolveHttpParams(params);
} }
@Override @Override