From 8bacc9425e8ad30abf9d0ab55a6a8558a7e2c048 Mon Sep 17 00:00:00 2001
From: altusea <114981887+altusea@users.noreply.github.com>
Date: Thu, 22 May 2025 15:03:27 +0800
Subject: [PATCH] =?UTF-8?q?:art:=20=E4=BF=AE=E5=A4=8DCloseableHttpClient?=
=?UTF-8?q?=E7=9B=B8=E5=85=B3=E7=9A=84=E8=AF=AF=E7=94=A8=E4=BB=A3=E7=A0=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../impl/WxChannelServiceHttpClientImpl.java | 43 ++++--------
.../ChannelFileUploadRequestExecutor.java | 15 ++---
.../ChannelMediaDownloadRequestExecutor.java | 24 +++----
...CommonUploadRequestExecutorApacheImpl.java | 22 +++---
.../OcrDiscernApacheHttpRequestExecutor.java | 15 ++---
.../apache/ApacheBasicResponseHandler.java | 9 +++
.../ApacheMediaDownloadRequestExecutor.java | 6 +-
...MediaInputStreamUploadRequestExecutor.java | 15 ++---
.../ApacheMediaUploadRequestExecutor.java | 17 ++---
...opMediaUploadRequestCustomizeExecutor.java | 17 ++---
...cheMinishopMediaUploadRequestExecutor.java | 17 ++---
.../ApacheSimpleGetRequestExecutor.java | 9 +--
.../ApacheSimplePostRequestExecutor.java | 9 +--
.../http/apache/ByteArrayResponseHandler.java | 17 +++++
.../apache/InputStreamResponseHandler.java | 28 +++-----
.../util/http/apache/Utf8ResponseHandler.java | 23 ++-----
.../DefaultApacheHttpClientBuilderTest.java | 10 +--
.../impl/WxCpServiceApacheHttpClientImpl.java | 12 +---
.../weixin/cp/api/impl/WxCpServiceImpl.java | 12 +---
.../WxCpTpServiceApacheHttpClientImpl.java | 14 +---
.../api/impl/WxMaServiceHttpClientImpl.java | 56 +++++-----------
...ApacheApiSignaturePostRequestExecutor.java | 9 ++-
.../ApacheQrcodeBytesRequestExecutor.java | 2 -
.../ApacheQrcodeFileRequestExecutor.java | 2 -
...acheUploadAuthMaterialRequestExecutor.java | 53 +++++++--------
.../ApacheVodSingleUploadRequestExecutor.java | 16 ++---
.../ApacheVodUploadPartRequestExecutor.java | 16 ++---
.../api/impl/WxMpServiceHttpClientImpl.java | 67 +++++--------------
...terialDeleteApacheHttpRequestExecutor.java | 16 ++---
...rialNewsInfoApacheHttpRequestExecutor.java | 2 -
...terialUploadApacheHttpRequestExecutor.java | 2 -
...ialVideoInfoApacheHttpRequestExecutor.java | 17 ++---
...mageDownloadApacheHttpRequestExecutor.java | 2 -
...diaImgUploadApacheHttpRequestExecutor.java | 2 -
.../QrCodeApacheHttpRequestExecutor.java | 2 -
.../VoiceUploadApacheHttpRequestExecutor.java | 16 ++---
...nUploadMultiRequestExecutorApacheImpl.java | 24 +++----
.../GenericUploadRequestExecutor.java | 6 +-
.../MaQrCodeApacheHttpRequestExecutor.java | 2 -
.../impl/WxPayServiceApacheHttpImpl.java | 27 ++++----
.../impl/WxQidianServiceHttpClientImpl.java | 10 +--
41 files changed, 240 insertions(+), 443 deletions(-)
create mode 100644 weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/apache/ApacheBasicResponseHandler.java
create mode 100644 weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/apache/ByteArrayResponseHandler.java
diff --git a/weixin-java-channel/src/main/java/me/chanjar/weixin/channel/api/impl/WxChannelServiceHttpClientImpl.java b/weixin-java-channel/src/main/java/me/chanjar/weixin/channel/api/impl/WxChannelServiceHttpClientImpl.java
index d4b5afde0..da62ce411 100644
--- a/weixin-java-channel/src/main/java/me/chanjar/weixin/channel/api/impl/WxChannelServiceHttpClientImpl.java
+++ b/weixin-java-channel/src/main/java/me/chanjar/weixin/channel/api/impl/WxChannelServiceHttpClientImpl.java
@@ -1,28 +1,28 @@
package me.chanjar.weixin.channel.api.impl;
-import static me.chanjar.weixin.channel.constant.WxChannelApiUrlConstants.GET_ACCESS_TOKEN_URL;
-import static me.chanjar.weixin.channel.constant.WxChannelApiUrlConstants.GET_STABLE_ACCESS_TOKEN_URL;
-
-import java.io.IOException;
import lombok.extern.slf4j.Slf4j;
import me.chanjar.weixin.channel.bean.token.StableTokenParam;
import me.chanjar.weixin.channel.config.WxChannelConfig;
import me.chanjar.weixin.channel.util.JsonUtils;
import me.chanjar.weixin.common.util.http.HttpType;
+import me.chanjar.weixin.common.util.http.apache.ApacheBasicResponseHandler;
import me.chanjar.weixin.common.util.http.apache.ApacheHttpClientBuilder;
import me.chanjar.weixin.common.util.http.apache.DefaultApacheHttpClientBuilder;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.HttpHost;
import org.apache.http.client.HttpClient;
import org.apache.http.client.config.RequestConfig;
-import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.StringEntity;
-import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.CloseableHttpClient;
+import java.io.IOException;
+
+import static me.chanjar.weixin.channel.constant.WxChannelApiUrlConstants.GET_ACCESS_TOKEN_URL;
+import static me.chanjar.weixin.channel.constant.WxChannelApiUrlConstants.GET_STABLE_ACCESS_TOKEN_URL;
+
/**
* @author Zeyes
*/
@@ -76,27 +76,12 @@ public class WxChannelServiceHttpClientImpl extends BaseWxChannelServiceImpl create(RequestHttp, ?> requestHttp) throws WxErrorException {
switch (requestHttp.getRequestType()) {
case APACHE_HTTP:
diff --git a/weixin-java-channel/src/main/java/me/chanjar/weixin/channel/executor/ChannelMediaDownloadRequestExecutor.java b/weixin-java-channel/src/main/java/me/chanjar/weixin/channel/executor/ChannelMediaDownloadRequestExecutor.java
index 8f841c231..bb771a256 100644
--- a/weixin-java-channel/src/main/java/me/chanjar/weixin/channel/executor/ChannelMediaDownloadRequestExecutor.java
+++ b/weixin-java-channel/src/main/java/me/chanjar/weixin/channel/executor/ChannelMediaDownloadRequestExecutor.java
@@ -1,14 +1,5 @@
package me.chanjar.weixin.channel.executor;
-import static org.apache.commons.io.FileUtils.openOutputStream;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.UUID;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
import lombok.extern.slf4j.Slf4j;
import me.chanjar.weixin.channel.bean.image.ChannelImageResponse;
import me.chanjar.weixin.channel.util.JsonUtils;
@@ -30,6 +21,16 @@ import org.apache.http.client.methods.HttpGet;
import org.apache.http.entity.ContentType;
import org.apache.http.impl.client.CloseableHttpClient;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.UUID;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import static org.apache.commons.io.FileUtils.openOutputStream;
+
/**
* 下载媒体文件请求执行器
*
@@ -90,10 +91,7 @@ public class ChannelMediaDownloadRequestExecutor implements RequestExecutor {
+
+ public static final ByteArrayResponseHandler INSTANCE = new ByteArrayResponseHandler();
+
+ @Override
+ public byte[] handleEntity(HttpEntity entity) throws IOException {
+ return EntityUtils.toByteArray(entity);
+ }
+}
diff --git a/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/apache/InputStreamResponseHandler.java b/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/apache/InputStreamResponseHandler.java
index 5c72744cb..156836261 100644
--- a/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/apache/InputStreamResponseHandler.java
+++ b/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/apache/InputStreamResponseHandler.java
@@ -1,33 +1,23 @@
package me.chanjar.weixin.common.util.http.apache;
+import org.apache.http.HttpEntity;
+import org.apache.http.client.ResponseHandler;
+import org.apache.http.impl.client.AbstractResponseHandler;
+
import java.io.IOException;
import java.io.InputStream;
-import org.apache.http.HttpEntity;
-import org.apache.http.HttpResponse;
-import org.apache.http.StatusLine;
-import org.apache.http.client.HttpResponseException;
-import org.apache.http.client.ResponseHandler;
-import org.apache.http.util.EntityUtils;
-
/**
* 输入流响应处理器.
*
- * @author Daniel Qian
+ * @author altusea
*/
-public class InputStreamResponseHandler implements ResponseHandler {
+public class InputStreamResponseHandler extends AbstractResponseHandler {
+
public static final ResponseHandler INSTANCE = new InputStreamResponseHandler();
- private static final int STATUS_CODE_300 = 300;
@Override
- public InputStream handleResponse(final HttpResponse response) throws IOException {
- final StatusLine statusLine = response.getStatusLine();
- final HttpEntity entity = response.getEntity();
- if (statusLine.getStatusCode() >= STATUS_CODE_300) {
- EntityUtils.consume(entity);
- throw new HttpResponseException(statusLine.getStatusCode(), statusLine.getReasonPhrase());
- }
- return entity == null ? null : entity.getContent();
+ public InputStream handleEntity(HttpEntity entity) throws IOException {
+ return entity.getContent();
}
-
}
diff --git a/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/apache/Utf8ResponseHandler.java b/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/apache/Utf8ResponseHandler.java
index 035726d44..40d96e3ca 100644
--- a/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/apache/Utf8ResponseHandler.java
+++ b/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/apache/Utf8ResponseHandler.java
@@ -1,33 +1,24 @@
package me.chanjar.weixin.common.util.http.apache;
-import org.apache.http.Consts;
import org.apache.http.HttpEntity;
-import org.apache.http.HttpResponse;
-import org.apache.http.StatusLine;
-import org.apache.http.client.HttpResponseException;
import org.apache.http.client.ResponseHandler;
+import org.apache.http.impl.client.AbstractResponseHandler;
import org.apache.http.util.EntityUtils;
import java.io.IOException;
+import java.nio.charset.StandardCharsets;
/**
- * copy from {@link org.apache.http.impl.client.BasicResponseHandler}
+ * Utf8ResponseHandler
*
- * @author Daniel Qian
+ * @author altusea
*/
-public class Utf8ResponseHandler implements ResponseHandler {
+public class Utf8ResponseHandler extends AbstractResponseHandler {
public static final ResponseHandler INSTANCE = new Utf8ResponseHandler();
@Override
- public String handleResponse(final HttpResponse response) throws IOException {
- final StatusLine statusLine = response.getStatusLine();
- final HttpEntity entity = response.getEntity();
- if (statusLine.getStatusCode() >= 300) {
- EntityUtils.consume(entity);
- throw new HttpResponseException(statusLine.getStatusCode(), statusLine.toString());
- }
- return entity == null ? null : EntityUtils.toString(entity, Consts.UTF_8);
+ public String handleEntity(HttpEntity entity) throws IOException {
+ return EntityUtils.toString(entity, StandardCharsets.UTF_8);
}
-
}
diff --git a/weixin-java-common/src/test/java/me/chanjar/weixin/common/util/http/apache/DefaultApacheHttpClientBuilderTest.java b/weixin-java-common/src/test/java/me/chanjar/weixin/common/util/http/apache/DefaultApacheHttpClientBuilderTest.java
index 08de63167..7296d29d4 100644
--- a/weixin-java-common/src/test/java/me/chanjar/weixin/common/util/http/apache/DefaultApacheHttpClientBuilderTest.java
+++ b/weixin-java-common/src/test/java/me/chanjar/weixin/common/util/http/apache/DefaultApacheHttpClientBuilderTest.java
@@ -79,13 +79,13 @@ public class DefaultApacheHttpClientBuilderTest {
HttpUriRequest request = new HttpGet("http://localhost:8080");
HttpContext context = HttpClientContext.create();
try (CloseableHttpResponse resp = client.execute(request, context)) {
- Assert.assertEquals("requestInterceptor1", context.getAttribute("interceptor_called"), "成功调用 requestInterceptor1 并向 content 中写入了数据");
+ Assert.assertEquals(context.getAttribute("interceptor_called"), "requestInterceptor1", "成功调用 requestInterceptor1 并向 content 中写入了数据");
// 测试拦截器执行顺序
- Assert.assertEquals("requestInterceptor1", interceptorOrder.get(0));
- Assert.assertEquals("requestInterceptor2", interceptorOrder.get(1));
- Assert.assertEquals("responseInterceptor1", interceptorOrder.get(2));
- Assert.assertEquals("responseInterceptor2", interceptorOrder.get(3));
+ Assert.assertEquals(interceptorOrder.get(0), "requestInterceptor1");
+ Assert.assertEquals(interceptorOrder.get(1), "requestInterceptor2");
+ Assert.assertEquals(interceptorOrder.get(2), "responseInterceptor1");
+ Assert.assertEquals(interceptorOrder.get(3), "responseInterceptor2");
}
}
}
diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpServiceApacheHttpClientImpl.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpServiceApacheHttpClientImpl.java
index 7e69152a1..ce3f4756a 100644
--- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpServiceApacheHttpClientImpl.java
+++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpServiceApacheHttpClientImpl.java
@@ -1,21 +1,19 @@
package me.chanjar.weixin.cp.api.impl;
-
import me.chanjar.weixin.common.bean.WxAccessToken;
import me.chanjar.weixin.common.enums.WxType;
import me.chanjar.weixin.common.error.WxError;
import me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.common.error.WxRuntimeException;
import me.chanjar.weixin.common.util.http.HttpType;
+import me.chanjar.weixin.common.util.http.apache.ApacheBasicResponseHandler;
import me.chanjar.weixin.common.util.http.apache.ApacheHttpClientBuilder;
import me.chanjar.weixin.common.util.http.apache.DefaultApacheHttpClientBuilder;
import me.chanjar.weixin.cp.config.WxCpConfigStorage;
import me.chanjar.weixin.cp.constant.WxCpApiPathConsts;
import org.apache.http.HttpHost;
import org.apache.http.client.config.RequestConfig;
-import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
-import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.CloseableHttpClient;
import java.io.IOException;
@@ -61,13 +59,7 @@ public class WxCpServiceApacheHttpClientImpl extends BaseWxCpServiceImpl {
private static final Logger logger =
@@ -64,8 +65,6 @@ public class ApacheApiSignaturePostRequestExecutor
}
}
return this.handleResponse(wxType, responseContent, respHeaders);
- } finally {
- httpPost.releaseConnection();
}
}
}
diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/executor/ApacheQrcodeBytesRequestExecutor.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/executor/ApacheQrcodeBytesRequestExecutor.java
index 58c7beabe..fff1be7fc 100644
--- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/executor/ApacheQrcodeBytesRequestExecutor.java
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/executor/ApacheQrcodeBytesRequestExecutor.java
@@ -63,8 +63,6 @@ public class ApacheQrcodeBytesRequestExecutor extends QrcodeBytesRequestExecutor
}
return IOUtils.toByteArray(inputStream);
- } finally {
- httpPost.releaseConnection();
}
}
}
diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/executor/ApacheQrcodeFileRequestExecutor.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/executor/ApacheQrcodeFileRequestExecutor.java
index c7f57b2f6..fbc0edcfb 100644
--- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/executor/ApacheQrcodeFileRequestExecutor.java
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/executor/ApacheQrcodeFileRequestExecutor.java
@@ -71,8 +71,6 @@ public class ApacheQrcodeFileRequestExecutor extends QrcodeRequestExecutor {
- public ApacheUploadAuthMaterialRequestExecutor(RequestHttp requestHttp) {
- super(requestHttp);
- }
+ public ApacheUploadAuthMaterialRequestExecutor(RequestHttp requestHttp) {
+ super(requestHttp);
+ }
- @Override
- public WxMaUploadAuthMaterialResult execute(String uri, File file, WxType wxType) throws WxErrorException, IOException {
- HttpPost httpPost = new HttpPost(uri);
- if (requestHttp.getRequestHttpProxy() != null) {
- RequestConfig config = RequestConfig.custom().setProxy(requestHttp.getRequestHttpProxy()).build();
- httpPost.setConfig(config);
- }
- if (file != null) {
- HttpEntity entity = MultipartEntityBuilder
- .create()
- .addBinaryBody("media", file)
- .setMode(HttpMultipartMode.RFC6532)
- .build();
- httpPost.setEntity(entity);
- }
- try (CloseableHttpResponse response = requestHttp.getRequestHttpClient().execute(httpPost)) {
- String responseContent = Utf8ResponseHandler.INSTANCE.handleResponse(response);
- WxError error = WxError.fromJson(responseContent, wxType);
- if (error.getErrorCode() != 0) {
- throw new WxErrorException(error);
- }
- return WxMaUploadAuthMaterialResult.fromJson(responseContent);
- } finally {
- httpPost.releaseConnection();
- }
+ @Override
+ public WxMaUploadAuthMaterialResult execute(String uri, File file, WxType wxType) throws WxErrorException, IOException {
+ HttpPost httpPost = new HttpPost(uri);
+ if (requestHttp.getRequestHttpProxy() != null) {
+ RequestConfig config = RequestConfig.custom().setProxy(requestHttp.getRequestHttpProxy()).build();
+ httpPost.setConfig(config);
}
+ if (file != null) {
+ HttpEntity entity = MultipartEntityBuilder
+ .create()
+ .addBinaryBody("media", file)
+ .setMode(HttpMultipartMode.RFC6532)
+ .build();
+ httpPost.setEntity(entity);
+ }
+ String responseContent = requestHttp.getRequestHttpClient().execute(httpPost, Utf8ResponseHandler.INSTANCE);
+ WxError error = WxError.fromJson(responseContent, wxType);
+ if (error.getErrorCode() != 0) {
+ throw new WxErrorException(error);
+ }
+ return WxMaUploadAuthMaterialResult.fromJson(responseContent);
+ }
}
diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/executor/ApacheVodSingleUploadRequestExecutor.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/executor/ApacheVodSingleUploadRequestExecutor.java
index 0ab7c767f..2ca23ae32 100644
--- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/executor/ApacheVodSingleUploadRequestExecutor.java
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/executor/ApacheVodSingleUploadRequestExecutor.java
@@ -8,7 +8,6 @@ import me.chanjar.weixin.common.util.http.RequestHttp;
import me.chanjar.weixin.common.util.http.apache.Utf8ResponseHandler;
import org.apache.http.HttpHost;
import org.apache.http.client.config.RequestConfig;
-import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.mime.HttpMultipartMode;
import org.apache.http.entity.mime.MultipartEntityBuilder;
@@ -24,7 +23,6 @@ public class ApacheVodSingleUploadRequestExecutor extends VodSingleUploadRequest
public ApacheVodSingleUploadRequestExecutor(RequestHttp requestHttp, String mediaName, String mediaType, String coverType, File coverData, String sourceContext) {
super(requestHttp, mediaName, mediaType, coverType, coverData, sourceContext);
-
}
@Override
@@ -54,15 +52,11 @@ public class ApacheVodSingleUploadRequestExecutor extends VodSingleUploadRequest
httpPost.setEntity(entityBuilder.build());
}
- try (CloseableHttpResponse response = requestHttp.getRequestHttpClient().execute(httpPost)) {
- String responseContent = Utf8ResponseHandler.INSTANCE.handleResponse(response);
- WxError error = WxError.fromJson(responseContent, wxType);
- if (error.getErrorCode() != 0) {
- throw new WxErrorException(error);
- }
- return WxMaVodSingleFileUploadResult.fromJson(responseContent);
- } finally {
- httpPost.releaseConnection();
+ String responseContent = requestHttp.getRequestHttpClient().execute(httpPost, Utf8ResponseHandler.INSTANCE);
+ WxError error = WxError.fromJson(responseContent, wxType);
+ if (error.getErrorCode() != 0) {
+ throw new WxErrorException(error);
}
+ return WxMaVodSingleFileUploadResult.fromJson(responseContent);
}
}
diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/executor/ApacheVodUploadPartRequestExecutor.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/executor/ApacheVodUploadPartRequestExecutor.java
index 1d6d090b2..f6c1ec36b 100644
--- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/executor/ApacheVodUploadPartRequestExecutor.java
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/executor/ApacheVodUploadPartRequestExecutor.java
@@ -8,7 +8,6 @@ import me.chanjar.weixin.common.util.http.RequestHttp;
import me.chanjar.weixin.common.util.http.apache.Utf8ResponseHandler;
import org.apache.http.HttpHost;
import org.apache.http.client.config.RequestConfig;
-import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.mime.HttpMultipartMode;
import org.apache.http.entity.mime.MultipartEntityBuilder;
@@ -45,15 +44,12 @@ public class ApacheVodUploadPartRequestExecutor extends VodUploadPartRequestExec
httpPost.setEntity(entityBuilder.build());
}
- try (CloseableHttpResponse response = requestHttp.getRequestHttpClient().execute(httpPost)) {
- String responseContent = Utf8ResponseHandler.INSTANCE.handleResponse(response);
- WxError error = WxError.fromJson(responseContent, wxType);
- if (error.getErrorCode() != 0) {
- throw new WxErrorException(error);
- }
- return WxMaVodUploadPartResult.fromJson(responseContent);
- } finally {
- httpPost.releaseConnection();
+
+ String responseContent = requestHttp.getRequestHttpClient().execute(httpPost, Utf8ResponseHandler.INSTANCE);
+ WxError error = WxError.fromJson(responseContent, wxType);
+ if (error.getErrorCode() != 0) {
+ throw new WxErrorException(error);
}
+ return WxMaVodUploadPartResult.fromJson(responseContent);
}
}
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpServiceHttpClientImpl.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpServiceHttpClientImpl.java
index 750f78713..1a5305150 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpServiceHttpClientImpl.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpServiceHttpClientImpl.java
@@ -1,18 +1,17 @@
package me.chanjar.weixin.mp.api.impl;
import me.chanjar.weixin.common.util.http.HttpType;
+import me.chanjar.weixin.common.util.http.apache.ApacheBasicResponseHandler;
import me.chanjar.weixin.common.util.http.apache.ApacheHttpClientBuilder;
import me.chanjar.weixin.common.util.http.apache.DefaultApacheHttpClientBuilder;
import me.chanjar.weixin.mp.bean.WxMpStableAccessTokenRequest;
import me.chanjar.weixin.mp.config.WxMpConfigStorage;
import org.apache.http.HttpHost;
import org.apache.http.client.config.RequestConfig;
-import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.StringEntity;
-import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.CloseableHttpClient;
import java.io.IOException;
@@ -68,61 +67,31 @@ public class WxMpServiceHttpClientImpl extends BaseWxMpServiceImpl params = new HashMap<>();
params.put("media_id", materialId);
httpPost.setEntity(new StringEntity(WxGsonBuilder.create().toJson(params)));
- try (CloseableHttpResponse response = requestHttp.getRequestHttpClient().execute(httpPost)) {
- String responseContent = Utf8ResponseHandler.INSTANCE.handleResponse(response);
- WxError error = WxError.fromJson(responseContent, WxType.MP);
- if (error.getErrorCode() != 0) {
- throw new WxErrorException(error);
- } else {
- return true;
- }
- } finally {
- httpPost.releaseConnection();
+ String responseContent = requestHttp.getRequestHttpClient().execute(httpPost, Utf8ResponseHandler.INSTANCE);
+ WxError error = WxError.fromJson(responseContent, WxType.MP);
+ if (error.getErrorCode() != 0) {
+ throw new WxErrorException(error);
}
+ return true;
}
}
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/requestexecuter/material/MaterialNewsInfoApacheHttpRequestExecutor.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/requestexecuter/material/MaterialNewsInfoApacheHttpRequestExecutor.java
index 162369436..0059e1729 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/requestexecuter/material/MaterialNewsInfoApacheHttpRequestExecutor.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/requestexecuter/material/MaterialNewsInfoApacheHttpRequestExecutor.java
@@ -51,8 +51,6 @@ public class MaterialNewsInfoApacheHttpRequestExecutor
} else {
return WxMpGsonBuilder.create().fromJson(responseContent, WxMpMaterialNews.class);
}
- } finally {
- httpPost.releaseConnection();
}
}
}
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/requestexecuter/material/MaterialUploadApacheHttpRequestExecutor.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/requestexecuter/material/MaterialUploadApacheHttpRequestExecutor.java
index 711e5aa43..f4d354b0a 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/requestexecuter/material/MaterialUploadApacheHttpRequestExecutor.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/requestexecuter/material/MaterialUploadApacheHttpRequestExecutor.java
@@ -68,8 +68,6 @@ public class MaterialUploadApacheHttpRequestExecutor extends MaterialUploadReque
} else {
return WxMpMaterialUploadResult.fromJson(responseContent);
}
- } finally {
- httpPost.releaseConnection();
}
}
}
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/requestexecuter/material/MaterialVideoInfoApacheHttpRequestExecutor.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/requestexecuter/material/MaterialVideoInfoApacheHttpRequestExecutor.java
index 509271875..387ed50c9 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/requestexecuter/material/MaterialVideoInfoApacheHttpRequestExecutor.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/requestexecuter/material/MaterialVideoInfoApacheHttpRequestExecutor.java
@@ -9,7 +9,6 @@ import me.chanjar.weixin.common.util.json.WxGsonBuilder;
import me.chanjar.weixin.mp.bean.material.WxMpMaterialVideoInfoResult;
import org.apache.http.HttpHost;
import org.apache.http.client.config.RequestConfig;
-import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
@@ -37,16 +36,12 @@ public class MaterialVideoInfoApacheHttpRequestExecutor extends MaterialVideoInf
Map params = new HashMap<>();
params.put("media_id", materialId);
httpPost.setEntity(new StringEntity(WxGsonBuilder.create().toJson(params)));
- try (CloseableHttpResponse response = requestHttp.getRequestHttpClient().execute(httpPost)) {
- String responseContent = Utf8ResponseHandler.INSTANCE.handleResponse(response);
- WxError error = WxError.fromJson(responseContent, WxType.MP);
- if (error.getErrorCode() != 0) {
- throw new WxErrorException(error);
- } else {
- return WxMpMaterialVideoInfoResult.fromJson(responseContent);
- }
- } finally {
- httpPost.releaseConnection();
+ String responseContent = requestHttp.getRequestHttpClient().execute(httpPost, Utf8ResponseHandler.INSTANCE);
+ WxError error = WxError.fromJson(responseContent, WxType.MP);
+ if (error.getErrorCode() != 0) {
+ throw new WxErrorException(error);
+ } else {
+ return WxMpMaterialVideoInfoResult.fromJson(responseContent);
}
}
}
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/requestexecuter/material/MaterialVoiceAndImageDownloadApacheHttpRequestExecutor.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/requestexecuter/material/MaterialVoiceAndImageDownloadApacheHttpRequestExecutor.java
index 3b23f6300..05395319c 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/requestexecuter/material/MaterialVoiceAndImageDownloadApacheHttpRequestExecutor.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/requestexecuter/material/MaterialVoiceAndImageDownloadApacheHttpRequestExecutor.java
@@ -57,8 +57,6 @@ public class MaterialVoiceAndImageDownloadApacheHttpRequestExecutor extends Mate
}
}
return new ByteArrayInputStream(responseContent);
- } finally {
- httpPost.releaseConnection();
}
}
}
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/requestexecuter/media/MediaImgUploadApacheHttpRequestExecutor.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/requestexecuter/media/MediaImgUploadApacheHttpRequestExecutor.java
index f62b8da6f..495f144f3 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/requestexecuter/media/MediaImgUploadApacheHttpRequestExecutor.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/requestexecuter/media/MediaImgUploadApacheHttpRequestExecutor.java
@@ -55,8 +55,6 @@ public class MediaImgUploadApacheHttpRequestExecutor extends MediaImgUploadReque
}
return WxMediaImgUploadResult.fromJson(responseContent);
- } finally {
- httpPost.releaseConnection();
}
}
}
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/requestexecuter/qrcode/QrCodeApacheHttpRequestExecutor.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/requestexecuter/qrcode/QrCodeApacheHttpRequestExecutor.java
index c1c48b5d1..3ff6a5a36 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/requestexecuter/qrcode/QrCodeApacheHttpRequestExecutor.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/requestexecuter/qrcode/QrCodeApacheHttpRequestExecutor.java
@@ -59,8 +59,6 @@ public class QrCodeApacheHttpRequestExecutor extends QrCodeRequestExecutor