• jeewx的使用_02 解析微信服务器post过来的数据


    如果在微信公众号接入了第三方的URL,那么用户微信服务器的请求将会被推送到第三方的URL上面,那么该如何解析数据呢?下面来分析

    找到MessageUtil.java 这个类中有一个parseXml的静态方法

     1 /**
     2      * 解析微信发来的请求(XML)
     3      * 
     4      * @param request
     5      * @return
     6      * @throws Exception
     7      */
     8     @SuppressWarnings("unchecked")
     9     public static Map<String, String> parseXml(HttpServletRequest request) throws Exception {
    10         // 将解析结果存储在HashMap中
    11         Map<String, String> map = new HashMap<String, String>();
    12 
    13         // 从request中取得输入流
    14         InputStream inputStream = request.getInputStream();
    15         // 读取输入流
    16         SAXReader reader = new SAXReader();
    17         Document document = reader.read(inputStream);
    18         // 得到xml根元素
    19         Element root = document.getRootElement();
    20         // 得到根元素的所有子节点
    21         List<Element> elementList = root.elements();
    22 
    23         // 遍历所有子节点
    24         for (Element e : elementList){
    25             
    26                 map.put(e.getName(), e.getText());
    27         }
    28         // 释放资源
    29         inputStream.close();
    30         inputStream = null;
    31 
    32         return map;
    33     }

    该方法将xml的数据包解析为一个map的数据结构,然后开发者就可以从这个map中获取所需要的各种数据信息

     1  // xml请求解析
     2 Map<String, String> requestMap = MessageUtil.parseXml(request);
     3 
     4 1 // 发送方帐号(用户的open_id)
     5  2 String fromUserName = requestMap.get("FromUserName");
     6  3 // 公众帐号
     7  4 String toUserName = requestMap.get("ToUserName");
     8  5 // 消息类型
     9  6 String msgType = requestMap.get("MsgType");
    10  7 //消息id
    11  8 String msgId = requestMap.get("MsgId");
    12  9 // 消息内容
    13 10 String content = requestMap.get("Content");
    14 11 //扫描类型
    15 12 String scanType=requestMap.get("ScanType");
    16 13 //扫描结果
    17 14 String scanResult=requestMap.get("ScanResult");

    这样就可以根据消息类型来做出不同的响应了

  • 相关阅读:
    iOS NSProgress的使用
    GIT的 .gitignore 配置
    MagicalRecord入门教程
    CoreData的数据存储
    NSLog打印信息的从新设置
    大石头得博客
    exc_bad_access(code=1, address=0x789870)野指针错误
    oc 获取当前设备系统的版本号
    免证书真机调试脚本iphoneentitlements
    支持非arc
  • 原文地址:https://www.cnblogs.com/geekdc/p/5220351.html
Copyright © 2020-2023  润新知