From d391ba386c2396645478e745513f4863128ab0de Mon Sep 17 00:00:00 2001 From: heavyrian2012 Date: Tue, 23 Aug 2022 14:11:34 +0800 Subject: [PATCH] =?UTF-8?q?http=20client=20=E6=B7=BB=E5=8A=A0=E9=83=A8?= =?UTF-8?q?=E5=88=86=E5=8F=82=E6=95=B0=EF=BC=8C=E8=A7=A3=E5=86=B3=E8=B0=83?= =?UTF-8?q?=E7=94=A8server=20sdk=E6=97=B6=E5=8F=AF=E8=83=BD=E5=87=BA?= =?UTF-8?q?=E7=8E=B0=E7=9A=84connection=20reset=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sdk/sdk_readme.txt | 2 +- .../sdk/utilities/AdminHttpUtils.java | 16 +++++++++++++++- .../sdk/utilities/ChannelHttpUtils.java | 14 +++++++++++++- .../sdk/utilities/RobotHttpUtils.java | 14 +++++++++++++- 4 files changed, 42 insertions(+), 4 deletions(-) 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(); }