diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpServiceImpl.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpServiceImpl.java index 555b4563..f688265f 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpServiceImpl.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpServiceImpl.java @@ -1,6 +1,5 @@ package me.chanjar.weixin.mp.api; -import com.google.gson.Gson; import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; @@ -24,6 +23,7 @@ import me.chanjar.weixin.common.util.crypto.WxCryptUtil; import me.chanjar.weixin.common.util.fs.FileUtils; import me.chanjar.weixin.common.util.http.*; import me.chanjar.weixin.common.util.json.GsonHelper; +import me.chanjar.weixin.common.util.json.WxGsonBuilder; import me.chanjar.weixin.common.util.xml.XStreamInitializer; import me.chanjar.weixin.mp.bean.*; import me.chanjar.weixin.mp.bean.result.*; @@ -275,11 +275,11 @@ public class WxMpServiceImpl implements WxMpService { public WxMpMaterialNewsBatchGetResult materialNewsBatchGet(int offset, int count) throws WxErrorException { String url = "https://api.weixin.qq.com/cgi-bin/material/batchget_material"; - Map params = new HashMap(); + Map params = new HashMap<>(); params.put("type", WxConsts.MATERIAL_NEWS); params.put("offset", offset); params.put("count", count); - String responseText = post(url, new Gson().toJson(params)); + String responseText = post(url, WxGsonBuilder.create().toJson(params)); WxError wxError = WxError.fromJson(responseText); if (wxError.getErrorCode() == 0) { return WxMpGsonBuilder.create().fromJson(responseText, WxMpMaterialNewsBatchGetResult.class); @@ -290,11 +290,11 @@ public class WxMpServiceImpl implements WxMpService { public WxMpMaterialFileBatchGetResult materialFileBatchGet(String type, int offset, int count) throws WxErrorException { String url = "https://api.weixin.qq.com/cgi-bin/material/batchget_material"; - Map params = new HashMap(); + Map params = new HashMap<>(); params.put("type", type); params.put("offset", offset); params.put("count", count); - String responseText = post(url, new Gson().toJson(params)); + String responseText = post(url, WxGsonBuilder.create().toJson(params)); WxError wxError = WxError.fromJson(responseText); if (wxError.getErrorCode() == 0) { return WxMpGsonBuilder.create().fromJson(responseText, WxMpMaterialFileBatchGetResult.class); diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/http/MaterialDeleteRequestExecutor.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/http/MaterialDeleteRequestExecutor.java index 4da3417a..8e7c41de 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/http/MaterialDeleteRequestExecutor.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/http/MaterialDeleteRequestExecutor.java @@ -1,10 +1,10 @@ package me.chanjar.weixin.mp.util.http; -import com.google.gson.Gson; import me.chanjar.weixin.common.bean.result.WxError; import me.chanjar.weixin.common.exception.WxErrorException; import me.chanjar.weixin.common.util.http.RequestExecutor; import me.chanjar.weixin.common.util.http.Utf8ResponseHandler; +import me.chanjar.weixin.common.util.json.WxGsonBuilder; import org.apache.http.HttpHost; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.config.RequestConfig; @@ -31,9 +31,9 @@ public class MaterialDeleteRequestExecutor implements RequestExecutor params = new HashMap(); + Map params = new HashMap<>(); params.put("media_id", materialId); - httpPost.setEntity(new StringEntity(new Gson().toJson(params))); + httpPost.setEntity(new StringEntity(WxGsonBuilder.create().toJson(params))); CloseableHttpResponse response = httpclient.execute(httpPost); String responseContent = Utf8ResponseHandler.INSTANCE.handleResponse(response); WxError error = WxError.fromJson(responseContent); diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/http/MaterialNewsInfoRequestExecutor.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/http/MaterialNewsInfoRequestExecutor.java index 9cae8268..e23ecc50 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/http/MaterialNewsInfoRequestExecutor.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/http/MaterialNewsInfoRequestExecutor.java @@ -1,10 +1,10 @@ package me.chanjar.weixin.mp.util.http; -import com.google.gson.Gson; import me.chanjar.weixin.common.bean.result.WxError; import me.chanjar.weixin.common.exception.WxErrorException; import me.chanjar.weixin.common.util.http.RequestExecutor; import me.chanjar.weixin.common.util.http.Utf8ResponseHandler; +import me.chanjar.weixin.common.util.json.WxGsonBuilder; import me.chanjar.weixin.mp.bean.WxMpMaterialNews; import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; import org.apache.http.HttpHost; @@ -32,9 +32,9 @@ public class MaterialNewsInfoRequestExecutor implements RequestExecutor params = new HashMap(); + Map params = new HashMap<>(); params.put("media_id", materialId); - httpPost.setEntity(new StringEntity(new Gson().toJson(params))); + httpPost.setEntity(new StringEntity(WxGsonBuilder.create().toJson(params))); CloseableHttpResponse response = httpclient.execute(httpPost); String responseContent = Utf8ResponseHandler.INSTANCE.handleResponse(response); WxError error = WxError.fromJson(responseContent); diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/http/MaterialUploadRequestExecutor.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/http/MaterialUploadRequestExecutor.java index 2d922614..63d92523 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/http/MaterialUploadRequestExecutor.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/http/MaterialUploadRequestExecutor.java @@ -1,10 +1,10 @@ package me.chanjar.weixin.mp.util.http; -import com.google.gson.Gson; import me.chanjar.weixin.common.bean.result.WxError; import me.chanjar.weixin.common.exception.WxErrorException; import me.chanjar.weixin.common.util.http.RequestExecutor; import me.chanjar.weixin.common.util.http.Utf8ResponseHandler; +import me.chanjar.weixin.common.util.json.WxGsonBuilder; import me.chanjar.weixin.mp.bean.WxMpMaterial; import me.chanjar.weixin.mp.bean.result.WxMpMaterialUploadResult; import org.apache.http.HttpHost; @@ -39,7 +39,7 @@ public class MaterialUploadRequestExecutor implements RequestExecutor form = material.getForm(); if (material.getForm() != null) { - multipartEntityBuilder.addTextBody("description", new Gson().toJson(form)); + multipartEntityBuilder.addTextBody("description", WxGsonBuilder.create().toJson(form)); } httpPost.setEntity(multipartEntityBuilder.build()); httpPost.setHeader("Content-Type", ContentType.MULTIPART_FORM_DATA.toString()); diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/http/MaterialVideoInfoRequestExecutor.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/http/MaterialVideoInfoRequestExecutor.java index f097eaef..e529f4e7 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/http/MaterialVideoInfoRequestExecutor.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/http/MaterialVideoInfoRequestExecutor.java @@ -1,10 +1,10 @@ package me.chanjar.weixin.mp.util.http; -import com.google.gson.Gson; import me.chanjar.weixin.common.bean.result.WxError; import me.chanjar.weixin.common.exception.WxErrorException; import me.chanjar.weixin.common.util.http.RequestExecutor; import me.chanjar.weixin.common.util.http.Utf8ResponseHandler; +import me.chanjar.weixin.common.util.json.WxGsonBuilder; import me.chanjar.weixin.mp.bean.result.WxMpMaterialVideoInfoResult; import org.apache.http.HttpHost; import org.apache.http.client.ClientProtocolException; @@ -31,9 +31,9 @@ public class MaterialVideoInfoRequestExecutor implements RequestExecutor params = new HashMap(); + Map params = new HashMap<>(); params.put("media_id", materialId); - httpPost.setEntity(new StringEntity(new Gson().toJson(params))); + httpPost.setEntity(new StringEntity(WxGsonBuilder.create().toJson(params))); CloseableHttpResponse response = httpclient.execute(httpPost); String responseContent = Utf8ResponseHandler.INSTANCE.handleResponse(response); WxError error = WxError.fromJson(responseContent); diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/http/MaterialVoiceAndImageDownloadRequestExecutor.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/http/MaterialVoiceAndImageDownloadRequestExecutor.java index 1c7e8639..72917a93 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/http/MaterialVoiceAndImageDownloadRequestExecutor.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/http/MaterialVoiceAndImageDownloadRequestExecutor.java @@ -1,10 +1,10 @@ package me.chanjar.weixin.mp.util.http; -import com.google.gson.Gson; import me.chanjar.weixin.common.bean.result.WxError; import me.chanjar.weixin.common.exception.WxErrorException; import me.chanjar.weixin.common.util.http.InputStreamResponseHandler; import me.chanjar.weixin.common.util.http.RequestExecutor; +import me.chanjar.weixin.common.util.json.WxGsonBuilder; import org.apache.commons.io.IOUtils; import org.apache.http.HttpHost; import org.apache.http.client.ClientProtocolException; @@ -41,9 +41,9 @@ public class MaterialVoiceAndImageDownloadRequestExecutor implements RequestExec httpPost.setConfig(config); } - Map params = new HashMap(); + Map params = new HashMap<>(); params.put("media_id", materialId); - httpPost.setEntity(new StringEntity(new Gson().toJson(params))); + httpPost.setEntity(new StringEntity(WxGsonBuilder.create().toJson(params))); CloseableHttpResponse response = httpclient.execute(httpPost); // 下载媒体文件出错 InputStream inputStream = InputStreamResponseHandler.INSTANCE.handleResponse(response); @@ -51,7 +51,7 @@ public class MaterialVoiceAndImageDownloadRequestExecutor implements RequestExec String responseContentString = new String(responseContent, "UTF-8"); if (responseContentString.length() < 100) { try { - WxError wxError = new Gson().fromJson(responseContentString, WxError.class); + WxError wxError = WxGsonBuilder.create().fromJson(responseContentString, WxError.class); if (wxError.getErrorCode() != 0) { throw new WxErrorException(wxError); } diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpMaterialFileBatchGetGsonAdapter.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpMaterialFileBatchGetGsonAdapter.java index 5483068f..74e3edad 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpMaterialFileBatchGetGsonAdapter.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpMaterialFileBatchGetGsonAdapter.java @@ -29,7 +29,7 @@ public class WxMpMaterialFileBatchGetGsonAdapter implements JsonDeserializer items = new ArrayList(); + List items = new ArrayList<>(); for (JsonElement anItem : item) { JsonObject articleInfo = anItem.getAsJsonObject(); items.add(WxMpGsonBuilder.create().fromJson(articleInfo, WxMpMaterialFileBatchGetResult.WxMaterialFileBatchGetNewsItem.class)); diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpMaterialNewsBatchGetGsonAdapter.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpMaterialNewsBatchGetGsonAdapter.java index e78a1586..eed1610b 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpMaterialNewsBatchGetGsonAdapter.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpMaterialNewsBatchGetGsonAdapter.java @@ -29,7 +29,7 @@ public class WxMpMaterialNewsBatchGetGsonAdapter implements JsonDeserializer items = new ArrayList(); + List items = new ArrayList<>(); for (JsonElement anItem : item) { JsonObject articleInfo = anItem.getAsJsonObject(); items.add(WxMpGsonBuilder.create().fromJson(articleInfo, WxMpMaterialNewsBatchGetResult.WxMaterialNewsBatchGetNewsItem.class)); diff --git a/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/WxMpMaterialAPITest.java b/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/WxMpMaterialAPITest.java index f565625b..8e145e15 100644 --- a/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/WxMpMaterialAPITest.java +++ b/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/WxMpMaterialAPITest.java @@ -31,7 +31,7 @@ public class WxMpMaterialAPITest { @Inject protected WxMpServiceImpl wxService; - private Map> media_ids = new LinkedHashMap>(); + private Map> media_ids = new LinkedHashMap<>(); // 缩略图的id,测试上传图文使用 private String thumbMediaId = ""; // 单图文消息media_id @@ -64,7 +64,7 @@ public class WxMpMaterialAPITest { thumbMediaId = res.getMediaId(); } - Map materialInfo = new HashMap(); + Map materialInfo = new HashMap<>(); materialInfo.put("media_id", res.getMediaId()); materialInfo.put("length", tempFile.length()); materialInfo.put("filename", tempFile.getName()); @@ -217,8 +217,8 @@ public class WxMpMaterialAPITest { public Object[][] downloadMaterial() { Object[][] params = new Object[this.media_ids.size()][]; int index = 0; - for (Iterator iterator = this.media_ids.keySet().iterator(); iterator.hasNext(); ) { - params[index] = new Object[]{iterator.next()}; + for (String mediaId : this.media_ids.keySet()) { + params[index] = new Object[]{mediaId}; index++; } return params; @@ -226,9 +226,9 @@ public class WxMpMaterialAPITest { @DataProvider public Iterator allTestMaterial() { - List params = new ArrayList(); - for (Iterator iterator = this.media_ids.keySet().iterator(); iterator.hasNext(); ) { - params.add(new Object[]{iterator.next()}); + List params = new ArrayList<>(); + for (String mediaId : this.media_ids.keySet()) { + params.add(new Object[]{mediaId}); } params.add(new Object[]{this.singleNewsMediaId}); params.add(new Object[]{this.multiNewsMediaId});