From 3692c87ec63bb9f1a1bb1cc9139be16c19b51b4b Mon Sep 17 00:00:00 2001 From: jinyu Date: Sat, 3 Dec 2016 16:29:05 +0800 Subject: [PATCH] add default httpparams --- .../http/factory/HttpClientFactory.java | 44 +++++++++++++++---- .../http/factory/SimpleHttpClientFactory.java | 2 +- .../apache3/HttpComponent3Factory.java | 2 +- .../apache4/HttpComponent4Factory.java | 4 +- .../apache4/HttpComponent4_1Factory.java | 5 +-- .../apache4/HttpComponent4_2Factory.java | 2 +- .../netty/Netty4HttpClientFactory.java | 2 +- .../support/okhttp/OkHttpClient2Factory.java | 2 +- .../support/okhttp/OkHttpClient3Factory.java | 2 +- .../support/okhttp/OkHttpClientFactory.java | 4 +- 10 files changed, 46 insertions(+), 23 deletions(-) diff --git a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/factory/HttpClientFactory.java b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/factory/HttpClientFactory.java index 335339de..e4aaf8e2 100644 --- a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/factory/HttpClientFactory.java +++ b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/factory/HttpClientFactory.java @@ -33,6 +33,7 @@ public abstract class HttpClientFactory { * 默认的HttpClient */ private static volatile HttpClientFactory defaultFactory = newDefaultFactory(); + private static volatile HttpParams defaultParams; /** * NettyHttpClient -> ApacheHttpClient(HttpComponent3&4) -> @@ -85,24 +86,49 @@ public abstract class HttpClientFactory { } /** - * 获取HttpClient实例 + * 获取默认的HttpParams * * @return */ - public static HttpClient getInstance() { - return getDefaultFactory().newInstance(); + public static HttpParams getDefaultParams() { + 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实例 * - * @param params Http参数 + * @return + */ + public static HttpClient getInstance() { + return getInstance(HttpClientFactory.defaultParams); + } + + /** + * 获取HttpClient实例 + * + * @param params + * Http参数 * * @return HttpClinet实例 */ public static HttpClient getInstance(HttpParams params) { HttpClientFactory clientFactory = getDefaultFactory(); - clientFactory.setDefaultParams(params); + if (params != null) { + clientFactory.resolveHttpParams(params); + } return clientFactory.newInstance(); } @@ -112,20 +138,20 @@ public abstract class HttpClientFactory { * @param params * 请求参数 */ - public void setDefaultParams(HttpParams params) { + public void resolveHttpParams(HttpParams params){ if (params == null) { throw new IllegalArgumentException("'params' must not be empty"); } - resolveHttpParams(params); + resolveHttpParams0(params); } - + /** * Resolve the Http Parameter * * @param params * 请求参数 */ - protected abstract void resolveHttpParams(HttpParams params); + protected abstract void resolveHttpParams0(HttpParams params); /** * 获取HttpClient实例 diff --git a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/factory/SimpleHttpClientFactory.java b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/factory/SimpleHttpClientFactory.java index 4fe3f3a5..802ba858 100644 --- a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/factory/SimpleHttpClientFactory.java +++ b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/factory/SimpleHttpClientFactory.java @@ -18,7 +18,7 @@ public class SimpleHttpClientFactory extends HttpClientFactory { private HttpParams params; @Override - protected void resolveHttpParams(HttpParams params) { + protected void resolveHttpParams0(HttpParams params) { this.params = params; } diff --git a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/support/apache3/HttpComponent3Factory.java b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/support/apache3/HttpComponent3Factory.java index 117b0142..c53c388c 100644 --- a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/support/apache3/HttpComponent3Factory.java +++ b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/support/apache3/HttpComponent3Factory.java @@ -41,7 +41,7 @@ public class HttpComponent3Factory extends HttpClientFactory { * Resolve Parameter */ @Override - protected void resolveHttpParams(HttpParams params) { + protected void resolveHttpParams0(HttpParams params) { if (params.getProxy() != null) { InetSocketAddress socketAddress = (InetSocketAddress) params .getProxy().address(); diff --git a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/support/apache4/HttpComponent4Factory.java b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/support/apache4/HttpComponent4Factory.java index c5796d7b..f76e6147 100644 --- a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/support/apache4/HttpComponent4Factory.java +++ b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/support/apache4/HttpComponent4Factory.java @@ -41,7 +41,7 @@ public class HttpComponent4Factory extends HttpClientFactory { } @Override - protected void resolveHttpParams(HttpParams params) { - httpComponentFactory.setDefaultParams(params); + protected void resolveHttpParams0(HttpParams params) { + httpComponentFactory.resolveHttpParams(params); } } diff --git a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/support/apache4/HttpComponent4_1Factory.java b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/support/apache4/HttpComponent4_1Factory.java index 3d7e7c70..27c3afad 100644 --- a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/support/apache4/HttpComponent4_1Factory.java +++ b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/support/apache4/HttpComponent4_1Factory.java @@ -39,10 +39,7 @@ public class HttpComponent4_1Factory extends HttpClientFactory { } @Override - protected void resolveHttpParams(HttpParams params) { - if (params == null) { - throw new IllegalArgumentException("'params' must not be empty"); - } + protected void resolveHttpParams0(HttpParams params) { if (params.getProxy() != null) { InetSocketAddress socketAddress = (InetSocketAddress) params .getProxy().address(); diff --git a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/support/apache4/HttpComponent4_2Factory.java b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/support/apache4/HttpComponent4_2Factory.java index 583ccbce..5db04ea9 100644 --- a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/support/apache4/HttpComponent4_2Factory.java +++ b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/support/apache4/HttpComponent4_2Factory.java @@ -42,7 +42,7 @@ public class HttpComponent4_2Factory extends HttpClientFactory { } @Override - public void resolveHttpParams(HttpParams params) { + protected void resolveHttpParams0(HttpParams params) { clientBuilder.setDefaultRequestConfig(RequestConfig.custom() .setConnectTimeout(params.getConnectTimeout()) .setConnectionRequestTimeout(params.getReadTimeout()).build()); diff --git a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/support/netty/Netty4HttpClientFactory.java b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/support/netty/Netty4HttpClientFactory.java index a8bd2e1d..49fa8cd8 100644 --- a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/support/netty/Netty4HttpClientFactory.java +++ b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/support/netty/Netty4HttpClientFactory.java @@ -46,7 +46,7 @@ public class Netty4HttpClientFactory extends HttpClientFactory { } @Override - protected void resolveHttpParams(HttpParams params) { + protected void resolveHttpParams0(HttpParams params) { this.params = params; } diff --git a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/support/okhttp/OkHttpClient2Factory.java b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/support/okhttp/OkHttpClient2Factory.java index 70eacc46..d8d5d855 100644 --- a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/support/okhttp/OkHttpClient2Factory.java +++ b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/support/okhttp/OkHttpClient2Factory.java @@ -32,7 +32,7 @@ public class OkHttpClient2Factory extends HttpClientFactory { } @Override - protected void resolveHttpParams(HttpParams params) { + protected void resolveHttpParams0(HttpParams params) { okClient.setConnectTimeout(params.getConnectTimeout(), TimeUnit.MILLISECONDS); okClient.setReadTimeout(params.getReadTimeout(), TimeUnit.MILLISECONDS); diff --git a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/support/okhttp/OkHttpClient3Factory.java b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/support/okhttp/OkHttpClient3Factory.java index 64e19ed6..c773975c 100644 --- a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/support/okhttp/OkHttpClient3Factory.java +++ b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/support/okhttp/OkHttpClient3Factory.java @@ -39,7 +39,7 @@ public class OkHttpClient3Factory extends HttpClientFactory { * * */ @Override - protected void resolveHttpParams(HttpParams params) { + protected void resolveHttpParams0(HttpParams params) { clientBuilder.connectTimeout(params.getConnectTimeout(), TimeUnit.MILLISECONDS); clientBuilder.readTimeout(params.getReadTimeout(), diff --git a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/support/okhttp/OkHttpClientFactory.java b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/support/okhttp/OkHttpClientFactory.java index 926ea8d0..525f20e8 100644 --- a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/support/okhttp/OkHttpClientFactory.java +++ b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/support/okhttp/OkHttpClientFactory.java @@ -27,8 +27,8 @@ public class OkHttpClientFactory extends HttpClientFactory { } @Override - protected void resolveHttpParams(HttpParams params) { - okHttpClientFactory.setDefaultParams(params); + protected void resolveHttpParams0(HttpParams params) { + okHttpClientFactory.resolveHttpParams(params); } @Override