From 554fd08fb8868b679d8fed692de772b2ecdfeb00 Mon Sep 17 00:00:00 2001 From: Binary Wang Date: Sun, 2 Jul 2017 17:17:35 +0800 Subject: [PATCH] =?UTF-8?q?#195=20=E6=8A=BD=E5=8F=96=E7=B4=A0=E6=9D=90?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E8=AF=B7=E6=B1=82URL=E5=88=B0=E5=B8=B8?= =?UTF-8?q?=E9=87=8F=E7=B1=BB=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../weixin/mp/api/WxMpMaterialService.java | 14 +++++- .../mp/api/impl/WxMpMaterialServiceImpl.java | 45 +++++++------------ 2 files changed, 29 insertions(+), 30 deletions(-) diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpMaterialService.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpMaterialService.java index 8e769d3e..05ca87ea 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpMaterialService.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpMaterialService.java @@ -16,6 +16,16 @@ import java.io.InputStream; * */ public interface WxMpMaterialService { + String MEDIA_GET_URL = "https://api.weixin.qq.com/cgi-bin/media/get"; + String MEDIA_UPLOAD_URL = "https://api.weixin.qq.com/cgi-bin/media/upload?type=%s"; + String IMG_UPLOAD_URL = "https://api.weixin.qq.com/cgi-bin/media/uploadimg"; + String MATERIAL_ADD_URL = "https://api.weixin.qq.com/cgi-bin/material/add_material?type=%s"; + String NEWS_ADD_URL = "https://api.weixin.qq.com/cgi-bin/material/add_news"; + String MATERIAL_GET_URL = "https://api.weixin.qq.com/cgi-bin/material/get_material"; + String NEWS_UPDATE_URL = "https://api.weixin.qq.com/cgi-bin/material/update_news"; + String MATERIAL_DEL_URL = "https://api.weixin.qq.com/cgi-bin/material/del_material"; + String MATERIAL_GET_COUNT_URL = "https://api.weixin.qq.com/cgi-bin/material/get_materialcount"; + String MATERIAL_BATCHGET_URL = "https://api.weixin.qq.com/cgi-bin/material/batchget_material"; /** *
@@ -73,11 +83,11 @@ public interface WxMpMaterialService {
    * 接口url格式:https://api.weixin.qq.com/cgi-bin/media/get?access_token=ACCESS_TOKEN&media_id=MEDIA_ID
    * 
* - * @param media_id + * @param mediaId 媒体文件Id * @return 保存到本地的临时文件 * @throws WxErrorException */ - File mediaDownload(String media_id) throws WxErrorException; + File mediaDownload(String mediaId) throws WxErrorException; /** *
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpMaterialServiceImpl.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpMaterialServiceImpl.java
index bb5857be..99a63f91 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpMaterialServiceImpl.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpMaterialServiceImpl.java
@@ -25,8 +25,7 @@ import java.util.UUID;
  * Created by Binary Wang on 2016/7/21.
  */
 public class WxMpMaterialServiceImpl implements WxMpMaterialService {
-  private static final String MEDIA_API_URL_PREFIX = "https://api.weixin.qq.com/cgi-bin/media";
-  private static final String MATERIAL_API_URL_PREFIX = "https://api.weixin.qq.com/cgi-bin/material";
+
   private WxMpService wxMpService;
 
   public WxMpMaterialServiceImpl(WxMpService wxMpService) {
@@ -45,28 +44,26 @@ public class WxMpMaterialServiceImpl implements WxMpMaterialService {
 
   @Override
   public WxMediaUploadResult mediaUpload(String mediaType, File file) throws WxErrorException {
-    String url = MEDIA_API_URL_PREFIX + "/upload?type=" + mediaType;
+    String url = String.format(MEDIA_UPLOAD_URL, mediaType);
     return this.wxMpService.execute(MediaUploadRequestExecutor.create(this.wxMpService.getRequestHttp()), url, file);
   }
 
   @Override
-  public File mediaDownload(String media_id) throws WxErrorException {
-    String url = MEDIA_API_URL_PREFIX + "/get";
+  public File mediaDownload(String mediaId) throws WxErrorException {
     return this.wxMpService.execute(
       MediaDownloadRequestExecutor.create(this.wxMpService.getRequestHttp(), this.wxMpService.getWxMpConfigStorage().getTmpDirFile()),
-      url,
-      "media_id=" + media_id);
+      MEDIA_GET_URL,
+      "media_id=" + mediaId);
   }
 
   @Override
   public WxMediaImgUploadResult mediaImgUpload(File file) throws WxErrorException {
-    String url = MEDIA_API_URL_PREFIX + "/uploadimg";
-    return this.wxMpService.execute(MediaImgUploadRequestExecutor.create(this.wxMpService.getRequestHttp()), url, file);
+    return this.wxMpService.execute(MediaImgUploadRequestExecutor.create(this.wxMpService.getRequestHttp()), IMG_UPLOAD_URL, file);
   }
 
   @Override
   public WxMpMaterialUploadResult materialFileUpload(String mediaType, WxMpMaterial material) throws WxErrorException {
-    String url = MATERIAL_API_URL_PREFIX + "/add_material?type=" + mediaType;
+    String url = String.format(MATERIAL_ADD_URL, mediaType);
     return this.wxMpService.execute(MaterialUploadRequestExecutor.create(this.wxMpService.getRequestHttp()), url, material);
   }
 
@@ -75,33 +72,29 @@ public class WxMpMaterialServiceImpl implements WxMpMaterialService {
     if (news == null || news.isEmpty()) {
       throw new IllegalArgumentException("news is empty!");
     }
-    String url = MATERIAL_API_URL_PREFIX + "/add_news";
-    String responseContent = this.wxMpService.post(url, news.toJson());
+    String responseContent = this.wxMpService.post(NEWS_ADD_URL, news.toJson());
     return WxMpMaterialUploadResult.fromJson(responseContent);
   }
 
   @Override
   public InputStream materialImageOrVoiceDownload(String media_id) throws WxErrorException {
-    String url = MATERIAL_API_URL_PREFIX + "/get_material";
-    return this.wxMpService.execute(MaterialVoiceAndImageDownloadRequestExecutor.create(this.wxMpService.getRequestHttp(), this.wxMpService.getWxMpConfigStorage().getTmpDirFile()), url, media_id);
+    return this.wxMpService.execute(MaterialVoiceAndImageDownloadRequestExecutor
+      .create(this.wxMpService.getRequestHttp(), this.wxMpService.getWxMpConfigStorage().getTmpDirFile()), MATERIAL_GET_URL, media_id);
   }
 
   @Override
   public WxMpMaterialVideoInfoResult materialVideoInfo(String media_id) throws WxErrorException {
-    String url = MATERIAL_API_URL_PREFIX + "/get_material";
-    return this.wxMpService.execute(MaterialVideoInfoRequestExecutor.create(this.wxMpService.getRequestHttp()), url, media_id);
+    return this.wxMpService.execute(MaterialVideoInfoRequestExecutor.create(this.wxMpService.getRequestHttp()), MATERIAL_GET_URL, media_id);
   }
 
   @Override
   public WxMpMaterialNews materialNewsInfo(String media_id) throws WxErrorException {
-    String url = MATERIAL_API_URL_PREFIX + "/get_material";
-    return this.wxMpService.execute(MaterialNewsInfoRequestExecutor.create(this.wxMpService.getRequestHttp()), url, media_id);
+    return this.wxMpService.execute(MaterialNewsInfoRequestExecutor.create(this.wxMpService.getRequestHttp()), MATERIAL_GET_URL, media_id);
   }
 
   @Override
   public boolean materialNewsUpdate(WxMpMaterialArticleUpdate wxMpMaterialArticleUpdate) throws WxErrorException {
-    String url = MATERIAL_API_URL_PREFIX + "/update_news";
-    String responseText = this.wxMpService.post(url, wxMpMaterialArticleUpdate.toJson());
+    String responseText = this.wxMpService.post(NEWS_UPDATE_URL, wxMpMaterialArticleUpdate.toJson());
     WxError wxError = WxError.fromJson(responseText);
     if (wxError.getErrorCode() == 0) {
       return true;
@@ -112,14 +105,12 @@ public class WxMpMaterialServiceImpl implements WxMpMaterialService {
 
   @Override
   public boolean materialDelete(String media_id) throws WxErrorException {
-    String url = MATERIAL_API_URL_PREFIX + "/del_material";
-    return this.wxMpService.execute(MaterialDeleteRequestExecutor.create(this.wxMpService.getRequestHttp()), url, media_id);
+    return this.wxMpService.execute(MaterialDeleteRequestExecutor.create(this.wxMpService.getRequestHttp()), MATERIAL_DEL_URL, media_id);
   }
 
   @Override
   public WxMpMaterialCountResult materialCount() throws WxErrorException {
-    String url = MATERIAL_API_URL_PREFIX + "/get_materialcount";
-    String responseText = this.wxMpService.get(url, null);
+    String responseText = this.wxMpService.get(MATERIAL_GET_COUNT_URL, null);
     WxError wxError = WxError.fromJson(responseText);
     if (wxError.getErrorCode() == 0) {
       return WxMpGsonBuilder.create().fromJson(responseText, WxMpMaterialCountResult.class);
@@ -130,12 +121,11 @@ public class WxMpMaterialServiceImpl implements WxMpMaterialService {
 
   @Override
   public WxMpMaterialNewsBatchGetResult materialNewsBatchGet(int offset, int count) throws WxErrorException {
-    String url = MATERIAL_API_URL_PREFIX + "/batchget_material";
     Map params = new HashMap<>();
     params.put("type", WxConsts.MATERIAL_NEWS);
     params.put("offset", offset);
     params.put("count", count);
-    String responseText = this.wxMpService.post(url, WxGsonBuilder.create().toJson(params));
+    String responseText = this.wxMpService.post(MATERIAL_BATCHGET_URL, WxGsonBuilder.create().toJson(params));
     WxError wxError = WxError.fromJson(responseText);
     if (wxError.getErrorCode() == 0) {
       return WxMpGsonBuilder.create().fromJson(responseText, WxMpMaterialNewsBatchGetResult.class);
@@ -146,12 +136,11 @@ public class WxMpMaterialServiceImpl implements WxMpMaterialService {
 
   @Override
   public WxMpMaterialFileBatchGetResult materialFileBatchGet(String type, int offset, int count) throws WxErrorException {
-    String url = MATERIAL_API_URL_PREFIX + "/batchget_material";
     Map params = new HashMap<>();
     params.put("type", type);
     params.put("offset", offset);
     params.put("count", count);
-    String responseText = this.wxMpService.post(url, WxGsonBuilder.create().toJson(params));
+    String responseText = this.wxMpService.post(MATERIAL_BATCHGET_URL, WxGsonBuilder.create().toJson(params));
     WxError wxError = WxError.fromJson(responseText);
     if (wxError.getErrorCode() == 0) {
       return WxMpGsonBuilder.create().fromJson(responseText, WxMpMaterialFileBatchGetResult.class);