diff --git a/README.md b/README.md
index 88eccfbc1..26cb3922b 100644
--- a/README.md
+++ b/README.md
@@ -17,7 +17,7 @@ weixin-java-tools
 
   me.chanjar
   weixin-java-mp
-  1.1.7
+  1.1.8
 
 ```
 
@@ -27,7 +27,7 @@ weixin-java-tools
 
   me.chanjar
   weixin-java-cp
-  1.1.7
+  1.1.8
 
 ```
 
diff --git a/pom.xml b/pom.xml
index cc16cf7d5..ca9d8dd87 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
   4.0.0
   me.chanjar
   weixin-java-parent
-  1.1.7
+  1.1.8
   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 2ca6bba13..b011f62cf 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
+    1.1.8
   
 
   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 32a7c917c..f9e3a25f3 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 97744dc45..c44ceea77 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 d50fe2511..1ab1ad7ec 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
+        1.1.8
     
 
     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 4469db015..487e00785 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 7f733dbba..93655a0d9 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
+        1.1.8
     
     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 932d799ce..12606096b 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;
+
   }
 
 }