微信公众号开发学习(2)_____消息接收与被动回复

本文介绍了一种使用Java处理XML消息的方法,包括如何解析接收到的XML消息并构造响应消息。文章详细展示了通过DocumentBuilderFactory和DocumentBuilder等API进行XML解析的过程,并提供了具体的代码实现。

消息接收(只以文本消息为例,其它消息类似,具体官网查看)

XML有4种解析方式,如果不了解,可以看看XML的4种解析方式浅谈

/*获取XML数据*/
InputStream is = request.getInputStream();
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document document = db.parse(is);

Map<String, String> map = new HashMap<String, String>();

NodeList nl = document.getChildNodes().item(0).getChildNodes();
for(int x = 0; x < nl.getLength(); x++){
    Node node = nl.item(x);
    if(node.getNodeName().equals("#text")) continue;//注意,空格和回车会产生一个#text节点
    System.out.println(node.getNodeName() + "___" + node.getTextContent());
    map.put(node.getNodeName(), node.getTextContent());
}

消息发送(只以文本消息为例,其它消息类似,具体官网查看)


String str = "<xml>" +
                "<ToUserName>" + map.get("FromUserName") + "</ToUserName>" +
                "<FromUserName>" + map.get("ToUserName") + "</FromUserName>" +
                "<CreateTime>" + map.get("CreateTime") + "</CreateTime>" +
                "<MsgType>text</MsgType>" +
                "<Content>" + "返回数据" + "</Content>" +//可以根据获取到的消息返回相应的信息
            "</xml>";
OutputStream os = response.getOutputStream();
os.write(str.getBytes("UTF-8"));



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值