a691553454的gravatar头像
a691553454 2018-04-05 22:43:53

spring mvc接收微信发送xml数据始终不成功?

SSM框架练习微信公众平台开发,微信发送的消息都是xml格式的,我一直都是用的json基本没有用过xml传输数据,网上搜的一些答案,都是一个版本的,而且还解决不了问题。

不贴代码了,简单来说我的问题分成三个:

1.xml的数据如何绑定到我的方法参数中,该参数是一个对象,我需要做什么配置?@xmlRootElement @xmlElement就不要提了,统统没用

2.我如何返回xml数据,需要做什么配置?

3.从request读取流的方法我是会的,但是我就是想用spring mvc集成的解决方案

以上

 

所有回答列表(1)
sunjiyun26的gravatar头像
sunjiyun26  LV9 2018年4月7日
    public static Map<String, String> xmlToMap(HttpServletRequest request) throws IOException {
                Map<String, String> map = new HashMap<String, String>();
                SAXReader reader = new SAXReader();

                InputStream ins = null;
                try {
                        ins = request.getInputStream();
                } catch (IOException e1) {
                        e1.printStackTrace();
                }
                Document doc = null;
                try {
                        doc = reader.read(ins);
                        Element root = doc.getRootElement();

                        List<Element> list = root.elements();

                        for (Element e : list) {
                                map.put(e.getName(), e.getText());
                        }

                        return map;
                } catch (DocumentException e1) {
                        e1.printStackTrace();
                }finally{
                        ins.close();
                }

                return null;
        }
	// xml请求解析
			Map<String, String> requestMap = MessageUtil.xmlToMap(request);

			// 发送方帐号(open_id)
			String fromUserName = requestMap.get("FromUserName");
			// 公众帐号
			String toUserName = requestMap.get("ToUserName");
			// 消息类型
			String msgType = requestMap.get("MsgType");
			// 消息内容
			String content = requestMap.get("Content");

			logger.info(
					"FromUserName is:" + fromUserName + ", ToUserName is:" + toUserName + ", MsgType is:" + msgType);

后面判断消息类型是文本还是图像等

评论(0) 最佳答案
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友