diff --git a/README.md b/README.md index 881af49c..26cb3922 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ weixin-java-tools me.chanjar weixin-java-mp - 1.1.6 + 1.1.8 ``` @@ -27,7 +27,7 @@ weixin-java-tools me.chanjar weixin-java-cp - 1.1.6 + 1.1.8 ``` diff --git a/pom.xml b/pom.xml index 1eb48642..a20bb619 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ 4.0.0 me.chanjar weixin-java-parent - 1.1.7-SNAPSHOT + 1.1.8-SNAPSHOT pom WeiXin Java Tools - Parent 微信公众号、企业号上级POM @@ -225,6 +225,16 @@ deploy + + org.apache.maven.plugins + maven-compiler-plugin + 2.3.2 + + 1.7 + 1.7 + UTF-8 + + diff --git a/weixin-java-common/pom.xml b/weixin-java-common/pom.xml index 17b8bc90..85b1d63b 100644 --- a/weixin-java-common/pom.xml +++ b/weixin-java-common/pom.xml @@ -6,7 +6,7 @@ me.chanjar weixin-java-parent - 1.1.7-SNAPSHOT + 1.1.8-SNAPSHOT weixin-java-common diff --git a/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/MediaDownloadRequestExecutor.java b/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/MediaDownloadRequestExecutor.java index 32a7c917..f9e3a25f 100644 --- a/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/MediaDownloadRequestExecutor.java +++ b/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/MediaDownloadRequestExecutor.java @@ -53,26 +53,29 @@ public class MediaDownloadRequestExecutor implements RequestExecutor 0) { - // 下载媒体文件出错 - if (ContentType.TEXT_PLAIN.getMimeType().equals(contentTypeHeader[0].getValue())) { - String responseContent = Utf8ResponseHandler.INSTANCE.handleResponse(response); - throw new WxErrorException(WxError.fromJson(responseContent)); + Header[] contentTypeHeader = response.getHeaders("Content-Type"); + if (contentTypeHeader != null && contentTypeHeader.length > 0) { + // 下载媒体文件出错 + if (ContentType.TEXT_PLAIN.getMimeType().equals(contentTypeHeader[0].getValue())) { + String responseContent = Utf8ResponseHandler.INSTANCE.handleResponse(response); + throw new WxErrorException(WxError.fromJson(responseContent)); + } } + InputStream inputStream = InputStreamResponseHandler.INSTANCE.handleResponse(response); + + // 视频文件不支持下载 + String fileName = getFileName(response); + if (StringUtils.isBlank(fileName)) { + return null; + } + String[] name_ext = fileName.split("\\."); + File localFile = FileUtils.createTmpFile(inputStream, name_ext[0], name_ext[1], tmpDirFile); + return localFile; + } - InputStream inputStream = InputStreamResponseHandler.INSTANCE.handleResponse(response); - - // 视频文件不支持下载 - String fileName = getFileName(response); - if (StringUtils.isBlank(fileName)) { - return null; - } - String[] name_ext = fileName.split("\\."); - File localFile = FileUtils.createTmpFile(inputStream, name_ext[0], name_ext[1], tmpDirFile); - return localFile; + } protected String getFileName(CloseableHttpResponse response) { diff --git a/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/MediaUploadRequestExecutor.java b/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/MediaUploadRequestExecutor.java index 97744dc4..c44ceea7 100644 --- a/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/MediaUploadRequestExecutor.java +++ b/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/MediaUploadRequestExecutor.java @@ -39,13 +39,14 @@ public class MediaUploadRequestExecutor implements RequestExecutor httpGet.setConfig(config); } - CloseableHttpResponse response = httpclient.execute(httpGet); - String responseContent = Utf8ResponseHandler.INSTANCE.handleResponse(response); - WxError error = WxError.fromJson(responseContent); - if (error.getErrorCode() != 0) { - throw new WxErrorException(error); + try (CloseableHttpResponse response = httpclient.execute(httpGet)) { + String responseContent = Utf8ResponseHandler.INSTANCE.handleResponse(response); + WxError error = WxError.fromJson(responseContent); + if (error.getErrorCode() != 0) { + throw new WxErrorException(error); + } + return responseContent; } - return responseContent; } } diff --git a/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/SimplePostRequestExecutor.java b/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/SimplePostRequestExecutor.java index d50fe251..1ab1ad7e 100644 --- a/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/SimplePostRequestExecutor.java +++ b/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/SimplePostRequestExecutor.java @@ -40,13 +40,14 @@ public class SimplePostRequestExecutor implements RequestExecutor me.chanjar weixin-java-parent - 1.1.7-SNAPSHOT + 1.1.8-SNAPSHOT weixin-java-cp diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpServiceImpl.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpServiceImpl.java index 4469db01..487e0078 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpServiceImpl.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpServiceImpl.java @@ -117,8 +117,10 @@ public class WxCpServiceImpl implements WxCpService { httpGet.setConfig(config); } CloseableHttpClient httpclient = getHttpclient(); - CloseableHttpResponse response = httpclient.execute(httpGet); - String resultContent = new BasicResponseHandler().handleResponse(response); + String resultContent = null; + try (CloseableHttpResponse response = httpclient.execute(httpGet)) { + resultContent = new BasicResponseHandler().handleResponse(response); + } WxError error = WxError.fromJson(resultContent); if (error.getErrorCode() != 0) { throw new WxErrorException(error); diff --git a/weixin-java-mp/pom.xml b/weixin-java-mp/pom.xml index 7ff9f237..9fd2c8fd 100644 --- a/weixin-java-mp/pom.xml +++ b/weixin-java-mp/pom.xml @@ -6,7 +6,7 @@ me.chanjar weixin-java-parent - 1.1.7-SNAPSHOT + 1.1.8-SNAPSHOT weixin-java-mp WeiXin Java Tools - MP diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/http/QrCodeRequestExecutor.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/http/QrCodeRequestExecutor.java index 932d799c..12606096 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/http/QrCodeRequestExecutor.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/http/QrCodeRequestExecutor.java @@ -47,20 +47,21 @@ public class QrCodeRequestExecutor implements RequestExecutor 0) { - // 出错 - if (ContentType.TEXT_PLAIN.getMimeType().equals(contentTypeHeader[0].getValue())) { - String responseContent = Utf8ResponseHandler.INSTANCE.handleResponse(response); - throw new WxErrorException(WxError.fromJson(responseContent)); + try (CloseableHttpResponse response = httpclient.execute(httpGet)) { + Header[] contentTypeHeader = response.getHeaders("Content-Type"); + if (contentTypeHeader != null && contentTypeHeader.length > 0) { + // 出错 + if (ContentType.TEXT_PLAIN.getMimeType().equals(contentTypeHeader[0].getValue())) { + String responseContent = Utf8ResponseHandler.INSTANCE.handleResponse(response); + throw new WxErrorException(WxError.fromJson(responseContent)); + } } + InputStream inputStream = InputStreamResponseHandler.INSTANCE.handleResponse(response); + + File localFile = FileUtils.createTmpFile(inputStream, UUID.randomUUID().toString(), "jpg"); + return localFile; } - InputStream inputStream = InputStreamResponseHandler.INSTANCE.handleResponse(response); - - File localFile = FileUtils.createTmpFile(inputStream, UUID.randomUUID().toString(), "jpg"); - return localFile; + } }