博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jeewx的使用_02 解析微信服务器post过来的数据
阅读量:5867 次
发布时间:2019-06-19

本文共 1772 字,大约阅读时间需要 5 分钟。

如果在微信公众号接入了第三方的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
parseXml(HttpServletRequest request) throws Exception {10 // 将解析结果存储在HashMap中11 Map
map = new HashMap
();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
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
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 //消息id11 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");

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

 

转载于:https://www.cnblogs.com/geekdc/p/5220351.html

你可能感兴趣的文章
grep与正则表达式02-相关练习题
查看>>
巧妙设置yum软件库轻松解决软件包安装问题
查看>>
自学Python之字符串总结
查看>>
JavaScript实现增、删、改功能
查看>>
国内先进的智能移动广告聚合平台-KeyMob聚合
查看>>
移动广告优化平台新利器--KeyMob!
查看>>
阿里云云服务器硬盘分区及挂载
查看>>
解决centos下sudo问题
查看>>
ZooKeeper 笔记(2) 监听数据变化
查看>>
我的友情链接
查看>>
使用 LVS 实现负载均衡原理及安装配置详解
查看>>
Docker容器学习梳理--web管理工具DockerUI部署记录
查看>>
Linux系统管理——基础命令篇
查看>>
前端编码规范
查看>>
nfs
查看>>
xml的组成和命名规范
查看>>
谈谈PHP实现依赖注入(控制反转)
查看>>
手工注入方法,方便大家测试注入点(含视频教程)
查看>>
我的友情链接
查看>>
VIM插件之 clang-complete
查看>>