文档章节

消息推送结果封装

大海201506
 大海201506
发布于 2017/03/16 17:24
字数 342
阅读 83
收藏 1

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;
    }
}
 

 

© 著作权归作者所有

共有 人打赏支持
大海201506
粉丝 5
博文 96
码字总数 173986
作品 0
广州
程序员
私信 提问
微信公众帐号开发教程第4篇-消息及消息处理工具的封装

工欲善其事必先利其器!本篇内容主要讲解如何将微信公众平台定义的消息及消息相关的操作封装成工具类,方面后期的使用。这里需要明确的是消息其实是由用户发给你的公众帐号的,消息先被微信平...

bliver
2013/11/29
0
2
Cordova 消息推送 百度云

消息推送-百度push 选择百度云推送理由:专业、稳定、免费(Google GCM在国内有时无法正常使用) 打开网址,注册开发者帐号,登入。 http://developer.baidu.com/bae/ 此处API key与Secret ...

youxizhe
2014/10/02
0
7
OA集成钉钉开发——第六篇——消息推送

前面我们说到微应用中的免登陆,那么OA的开发的用户信息就可以拿到了。 接下来我们要说的就是OA中的一个重要的功能就是消息的推送,这个功能是OA必不可少的一个可能,集成钉钉的一个很大的优...

小手冰凉丶
2016/12/27
343
0
个推服务端api初级使用手册

前言 自从了解到推送可以提升用户留存率等诸多优势之后,越来越多的开发者开始在他们的服务中加入推送的功能。由于每天有大量新加入的开发者询问在他们的服务端中集成个推服务api的问题,特此...

个推
2014/06/06
6.2K
7
微信公众号开发-自定义菜单接口

开始 本文是 微信开发-素材/消息管理接口 的后续,主要介绍微信公众平台的自定义菜单接口开发。由于个人的订阅号是没有大多数接口的权限的,所以我们需要使用微信官方提供的测试号来进行开发...

ZeroOne01
2018/07/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

centos7 安装maven

进入指定目录 cd /usr/local/src/ 下载maven 包 # 打开这个地址选中自己需要的版本补齐后面的地址,再复制到SSH去执行wget http://mirrors.hust.edu.cn/apache/maven/maven-3/ 解压改名 ...

Elson
4分钟前
0
0
推荐一个开源数据库迁移神器SQLines

链接: https://pan.baidu.com/s/1AikdH1X3xNvonpbj4mflgA 提取码: u2jg

Benz001
6分钟前
0
0
面试前必知Redis面试题—缓存雪崩+穿透+缓存与数据库双写一致问题

今天来分享一下Redis几道常见的面试题: 如何解决缓存雪崩? 如何解决缓存穿透? 如何保证缓存与数据库双写时一致的问题? 一、缓存雪崩 1.1什么是缓存雪崩? 回顾一下我们为什么要用缓存(Re...

我最喜欢三大框架
7分钟前
0
0
composer 很慢怎么办?

关于 Composer 的详细安装使用,详见之前的文章:在 PHP 中安装、使用 Composer 包管理工具 Composer 在国内不管是更新还是安装等都有一个「慢」的问题,有的时候真的很煎熬。 因此我们一般会...

whoru
19分钟前
0
0
ffmpeg提取音频文件

问题 从特定的mp3音频文件中,提取一部分作为新的mp3文件 ffmpeg ffmpeg -i a.mp3 -ss 00:25:00 -to 00:28:20 -acodec copy b.mp3 -i输入的文件 -ss从指定时间点开始提取 -to到指定时间点结...

亚林瓜子
28分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部