消息接收(只以文本消息为例,其它消息类似,具体官网查看)
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"));