消息推送结果封装
2017-03-16 00:00
309 查看
1 前言
在使用消息推送服务器,推送消息的返回结果可能不是我们想要的,这时候就得对消息返回结果进行封装。2 使用反射进行封装
2.1 返回结果如下:
//返回成功格式:{taskId=OSS-0316_d261997c9778384b3520cbeb7c95cddc, result=ok, status=successed_offline}//错误格式:{result=AppidError}
2.2 代码
//封装返回信息 //返回成功格式:{taskId=OSS-0316_d261997c9778384b3520cbeb7c95cddc, result=ok, status=successed_offline} //错误格式:{result=AppidError} GTResultVo gTResultVo = new GTResultVo(); String result = ret.getResponse().toString(); result = result.replace("{", ""); result = result.replace("}", ""); if(result.contains("result=ok")){ String[] attributeGroup = result.split(","); for(String str : attributeGroup){ String attribute = str.trim(); if(StringUtils.areNotEmpty(attribute)){ String name = attribute.split("=")[0]; String value = attribute.split("=")[1]; try { //首字母大写 Character c = Character.toUpperCase(name.charAt(0)); String classMethod = c.toString().concat(name.substring(1)); Method m = gTResultVo.getClass().getDeclaredMethod("set" + classMethod, String.class); m.invoke(gTResultVo, value); } catch (Exception e) { e.printStackTrace(); } } } }else{ String name = result.split("=")[0]; String value = result.split("=")[1]; try { //首字母大写 Character c = Character.toUpperCase(name.charAt(0)); String classMethod = c.toString().concat(name.substring(1)); Method m = gTResultVo.getClass().getDeclaredMethod("set" + classMethod, String.class); m.invoke(gTResultVo, value); } catch (Exception e) { e.printStackTrace(); } } return gTResultVo; |
/** * @Title: GTResultVo.java * @Package cc.messcat.common.vo * @Description: TODO * @author limh * @date 2017年3月16日 */ package cc.messcat.common.vo; /** * ClassName: GTResultVo * @Description: 封装个推返回消息 * @author limh * @date 2017年3月16日 */ public class GTResultVo { private String taskId; private String result; private String status; /** * @return the taskId */ public String getTaskId() { return taskId; } /** * @param taskId the taskId to set */ public void setTaskId(String taskId) { this.taskId = taskId; } /** * @return the result */ public String getResult() { return result; } /** * @param result the result to set */ public void setResult(String result) { this.result = result; } /** * @return the status */ public String getStatus() { return status; } /** * @param status the status to set */ public void setStatus(String status) { this.status = status; } } |
相关文章推荐
- [个推] 使用个推实现服务器端消息推送,推送结果返回分析
- Android消息推送之各种方案的对比
- 微信公共服务平台开发(.Net 的实现)11-------客服消息(定项消息推送 重要的OPENID)
- 使用goEasy实现web消息实时推送
- Android消息推送/Push机制介绍和资源索引贴
- androidpn 消息推送(2)
- ios消息推送,Java服务器后台证书制作。
- 企业账号的消息推送(证书整理)
- 苹果消息推送服务教程:第二部分(共2部分)
- iOS消息推送机制的实现
- Android消息推送
- APP消息推送:通知和透传
- 微信批量关注公众号、推送消息的方法!
- 关于消息推送的猜想
- android采用IBM-MQTT协议消息推送。
- com4j消息推送
- 消息推送系统——(一)概念与原理
- .Net使用SignalR实现消息推送功能预研及Demo 推荐
- 一步一步实现消息推送
- 环信接收消息本地推送的实现