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(); }