|
@@ -1,5 +1,6 @@
|
|
|
package me.chanjar.weixin.cp.api.impl;
|
|
|
|
|
|
+import com.google.gson.JsonObject;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import me.chanjar.weixin.common.bean.result.WxMediaUploadResult;
|
|
|
import me.chanjar.weixin.common.error.WxErrorException;
|
|
@@ -9,8 +10,12 @@ import me.chanjar.weixin.common.util.http.BaseMediaDownloadRequestExecutor;
|
|
|
import me.chanjar.weixin.common.util.http.InputStreamData;
|
|
|
import me.chanjar.weixin.common.util.http.MediaInputStreamUploadRequestExecutor;
|
|
|
import me.chanjar.weixin.common.util.http.MediaUploadRequestExecutor;
|
|
|
+import me.chanjar.weixin.common.util.json.GsonHelper;
|
|
|
+import me.chanjar.weixin.common.util.json.GsonParser;
|
|
|
import me.chanjar.weixin.cp.api.WxCpMediaService;
|
|
|
import me.chanjar.weixin.cp.api.WxCpService;
|
|
|
+import me.chanjar.weixin.cp.bean.media.MediaUploadByUrlReq;
|
|
|
+import me.chanjar.weixin.cp.bean.media.MediaUploadByUrlResult;
|
|
|
|
|
|
import java.io.File;
|
|
|
import java.io.IOException;
|
|
@@ -20,7 +25,12 @@ import java.net.URL;
|
|
|
import java.nio.file.Files;
|
|
|
import java.util.UUID;
|
|
|
|
|
|
-import static me.chanjar.weixin.cp.constant.WxCpApiPathConsts.Media.*;
|
|
|
+import static me.chanjar.weixin.cp.constant.WxCpApiPathConsts.Media.GET_UPLOAD_BY_URL_RESULT;
|
|
|
+import static me.chanjar.weixin.cp.constant.WxCpApiPathConsts.Media.IMG_UPLOAD;
|
|
|
+import static me.chanjar.weixin.cp.constant.WxCpApiPathConsts.Media.JSSDK_MEDIA_GET;
|
|
|
+import static me.chanjar.weixin.cp.constant.WxCpApiPathConsts.Media.MEDIA_GET;
|
|
|
+import static me.chanjar.weixin.cp.constant.WxCpApiPathConsts.Media.MEDIA_UPLOAD;
|
|
|
+import static me.chanjar.weixin.cp.constant.WxCpApiPathConsts.Media.UPLOAD_BY_URL;
|
|
|
|
|
|
/**
|
|
|
* <pre>
|
|
@@ -119,4 +129,20 @@ public class WxCpMediaServiceImpl implements WxCpMediaService {
|
|
|
return this.mainService.execute(MediaUploadRequestExecutor.create(this.mainService.getRequestHttp()), url, file)
|
|
|
.getUrl();
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public String uploadByUrl(MediaUploadByUrlReq req) throws WxErrorException {
|
|
|
+ final String url = this.mainService.getWxCpConfigStorage().getApiUrl(UPLOAD_BY_URL);
|
|
|
+ String responseContent = this.mainService.post(url, req.toJson());
|
|
|
+ return GsonHelper.getString(GsonParser.parse(responseContent), "jobid");
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public MediaUploadByUrlResult uploadByUrl(String jobId) throws WxErrorException {
|
|
|
+ final String url = this.mainService.getWxCpConfigStorage().getApiUrl(GET_UPLOAD_BY_URL_RESULT);
|
|
|
+ JsonObject jsonObject = new JsonObject();
|
|
|
+ jsonObject.addProperty("jobid", jobId);
|
|
|
+ String post = this.mainService.post(url, jsonObject.toString());
|
|
|
+ return MediaUploadByUrlResult.fromJson(post);
|
|
|
+ }
|
|
|
}
|