zoukankan      html  css  js  c++  java
  • 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");

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

  • 相关阅读:
    阿里云服务器完全卸载监控教程
    培养孩子专注力的10种方法
    多头数据分析
    腾讯分数分析报告-医美
    Omnibus test
    个股与指数的回归分析(自带python ols 参数解读)
    excel多元回归-系数参数解读
    比萨斜塔——统计显著性检验
    how to calculate the best fit to a plane in 3D, and how to find the corresponding statistical parameters
    sns.pairplot
  • 原文地址:https://www.cnblogs.com/geekdc/p/5220351.html
Copyright © 2011-2022 走看看