diff --git a/sdk/sdk_readme.txt b/sdk/sdk_readme.txt
index 22762fab..0d68f994 100644
--- a/sdk/sdk_readme.txt
+++ b/sdk/sdk_readme.txt
@@ -21,7 +21,7 @@
org.apache.httpcomponents
httpclient
- 4.5.3
+ 4.5.13
diff --git a/sdk/src/main/java/cn/wildfirechat/sdk/utilities/AdminHttpUtils.java b/sdk/src/main/java/cn/wildfirechat/sdk/utilities/AdminHttpUtils.java
index 94f77ea6..18bcbe1e 100644
--- a/sdk/src/main/java/cn/wildfirechat/sdk/utilities/AdminHttpUtils.java
+++ b/sdk/src/main/java/cn/wildfirechat/sdk/utilities/AdminHttpUtils.java
@@ -7,12 +7,16 @@ import org.apache.commons.codec.digest.DigestUtils;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.HttpClient;
+import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
+import org.apache.http.config.ConnectionConfig;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.DefaultHttpRequestRetryHandler;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.impl.client.HttpClients;
+import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -20,6 +24,7 @@ import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.lang.reflect.Type;
import java.nio.charset.Charset;
+import java.util.concurrent.TimeUnit;
public class AdminHttpUtils extends JsonUtils {
@@ -32,7 +37,16 @@ public class AdminHttpUtils extends JsonUtils {
public static void init(String url, String secret) {
adminUrl = url;
adminSecret = secret;
- httpClient = HttpClients.createDefault();
+ PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager();
+ cm.setValidateAfterInactivity(1000);
+ httpClient = HttpClients.custom()
+ .setConnectionManager(cm)
+ .evictExpiredConnections()
+ .evictIdleConnections(60L, TimeUnit.SECONDS)
+ .setRetryHandler(DefaultHttpRequestRetryHandler.INSTANCE)
+ .setMaxConnTotal(100)
+ .setMaxConnPerRoute(50)
+ .build();
}
public static IMResult httpGet(String path, Class clazz) throws Exception {
diff --git a/sdk/src/main/java/cn/wildfirechat/sdk/utilities/ChannelHttpUtils.java b/sdk/src/main/java/cn/wildfirechat/sdk/utilities/ChannelHttpUtils.java
index 85918015..e6663247 100644
--- a/sdk/src/main/java/cn/wildfirechat/sdk/utilities/ChannelHttpUtils.java
+++ b/sdk/src/main/java/cn/wildfirechat/sdk/utilities/ChannelHttpUtils.java
@@ -10,8 +10,10 @@ import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.DefaultHttpRequestRetryHandler;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.impl.client.HttpClients;
+import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -19,6 +21,7 @@ import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.lang.reflect.Type;
import java.nio.charset.Charset;
+import java.util.concurrent.TimeUnit;
public class ChannelHttpUtils extends JsonUtils {
@@ -33,7 +36,16 @@ public class ChannelHttpUtils extends JsonUtils {
this.imurl = imurl;
this.channelId = channelId;
this.channelSecret = secret;
- this.httpClient = HttpClients.createDefault();
+ PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager();
+ cm.setValidateAfterInactivity(1000);
+ httpClient = HttpClients.custom()
+ .setConnectionManager(cm)
+ .evictExpiredConnections()
+ .evictIdleConnections(60L, TimeUnit.SECONDS)
+ .setRetryHandler(DefaultHttpRequestRetryHandler.INSTANCE)
+ .setMaxConnTotal(100)
+ .setMaxConnPerRoute(50)
+ .build();
}
public IMResult httpJsonPost(String path, Object object, Class clazz) throws Exception{
diff --git a/sdk/src/main/java/cn/wildfirechat/sdk/utilities/RobotHttpUtils.java b/sdk/src/main/java/cn/wildfirechat/sdk/utilities/RobotHttpUtils.java
index e3747a58..fdf36479 100644
--- a/sdk/src/main/java/cn/wildfirechat/sdk/utilities/RobotHttpUtils.java
+++ b/sdk/src/main/java/cn/wildfirechat/sdk/utilities/RobotHttpUtils.java
@@ -11,8 +11,10 @@ import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.DefaultHttpRequestRetryHandler;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.impl.client.HttpClients;
+import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -20,6 +22,7 @@ import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.lang.reflect.Type;
import java.nio.charset.Charset;
+import java.util.concurrent.TimeUnit;
public class RobotHttpUtils extends JsonUtils {
@@ -34,7 +37,16 @@ public class RobotHttpUtils extends JsonUtils {
this.url = url;
this.robotId = robotId;
this.robotSecret = robotSecret;
- this.httpClient = HttpClients.createDefault();
+ PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager();
+ cm.setValidateAfterInactivity(1000);
+ httpClient = HttpClients.custom()
+ .setConnectionManager(cm)
+ .evictExpiredConnections()
+ .evictIdleConnections(60L, TimeUnit.SECONDS)
+ .setRetryHandler(DefaultHttpRequestRetryHandler.INSTANCE)
+ .setMaxConnTotal(100)
+ .setMaxConnPerRoute(50)
+ .build();
}