zoukankan      html  css  js  c++  java
  • 微信推送给服务器的XML消息解析-springmvc 解析xml数据流

    微信推送给服务器的XML消息解析;

    可以使用request.getInputStream(); 获取输入的消息流;但是需要自己解析流;

    spring mvc自带解析功能;

    controller中:

        @RequestMapping(value="weixin_create" )
        @ResponseBody
        public String weixinCreate(@RequestBody Scan  scan ){
            scanMapper.insertSelective(scan );
            return "weixinCreate...";
        }

    而且,还可以获取get串中的参数;

        @RequestMapping(value="weixin_create" )
        @ResponseBody
        public String weixinCreate(@RequestBody Scan scan, String signature){
            scan.setToUserName(signature); // 测试是否可以获得值
            scanMapper.insertSelective(scan);
            return "weixinCreate...";
        }

    model对象,这个也是mybatis的使用对象;

    package com.xxx.model;
    
    import javax.xml.bind.annotation.XmlAccessType;
    import javax.xml.bind.annotation.XmlAccessorType;
    import javax.xml.bind.annotation.XmlElement;
    import javax.xml.bind.annotation.XmlRootElement;
    
    @XmlRootElement(name="xml")
    @XmlAccessorType(XmlAccessType.FIELD)
    public class Scan {
        private Integer id;
    
        @XmlElement(name="ToUserName")
        private String toUserName;
    
        @XmlElement(name="FromUserName") 
        private String fromUserName;
    
        @XmlElement(name="CreateTime") 
        private Integer createTime;
    
        @XmlElement(name="MsgType") 
        private String msgType;
    
        @XmlElement(name="Event") 
        private String event;
    
        @XmlElement(name="EventKey") 
        private String eventKey;
    
        public Integer getId() {
            return id;
        }
    
        public void setId(Integer id) {
            this.id = id;
        }
    
        public String getToUserName() {
            return toUserName;
        }
    
        public void setToUserName(String toUserName) {
            this.toUserName = toUserName;
        }
    
        public String getFromUserName() {
            return fromUserName;
        }
    
        public void setFromUserName(String fromUserName) {
            this.fromUserName = fromUserName;
        }
    
        public Integer getCreateTime() {
            return createTime;
        }
    
        public void setCreateTime(Integer createTime) {
            this.createTime = createTime;
        }
    
        public String getMsgType() {
            return msgType;
        }
    
        public void setMsgType(String msgType) {
            this.msgType = msgType;
        }
    
        public String getEvent() {
            return event;
        }
    
        public void setEvent(String event) {
            this.event = event;
        }
    
        public String getEventKey() {
            return eventKey;
        }
    
        public void setEventKey(String eventKey) {
            this.eventKey = eventKey;
        }
    }
  • 相关阅读:
    React项目升级遇到的问题复盘(2019-09-02)
    前端项目升级到React-router5中遇到的问题解决方案以及思路
    三行Jquery代码实现简单的选项卡
    开放-封闭原则
    单一职责原则
    简单工厂模式(c++实现)
    博客园使用MarkDown格式记录博客
    Qml 的Image对应的source不变,但是图片内容改变却不会刷新的解决方案
    Qt中第一请求web api连接返回缓慢问题
    Qt的pro文件工程配置
  • 原文地址:https://www.cnblogs.com/stono/p/6561261.html
Copyright © 2011-2022 走看看