微信公众号开发系列三:响应关注和取关事件
一、实际需求
二、开发文档
三、编码实现
1、引入相关jar包:dom4j-1.6.1.jar、servlet-api-2.5.jar、xstream-1.3.1.jar用来处理xml文件。
2、根据开发文档中的xml内容,创建消息对象基础类BaseMessage:
/*
* 消息体基础类
*/
public class BaseMessage {
private String ToUserName;
private String FromUserName;
private long CreateTime;
private String MsgType;
public String getToUserName() {
return ToUserName;
}
public void setToUserName(String toUserName) {
ToUserName = toUserName;
}
public String getFromUserName() {
return FromUserName;
}
public void setFromUserName(String fromUserName) {
FromUserName = fromUserName;
}
public long getCreateTime() {
return CreateTime;
}
public void setCreateTime(long createTime) {
CreateTime = createTime;
}
public String getMsgType() {
return MsgType;
}
public void setMsgType(String msgType) {
MsgType = msgType;
}
}3、创建文本消息类TextMessage继承消息基础类:
/*
* 文本消息类
*/
public class TextMessage extends BaseMessage{
private String Content;
private String MsgId;
public String getContent() {
return Content;
}
public void setContent(String content) {
Content = content;
}
public String getMsgId() {
return MsgId;
}
public void setMsgId(String msgId) {
MsgId = msgId;
}
}4、创建处理xml的工具类XmlUtil:
/*
* xml处理工具类
*/
public class XmlUtil {
/*
* xml转map
*/
public static Map<String, String> xmlToMap(HttpServletRequest request) throws IOException, DocumentException{
HashMap<String, String> map = new HashMap<String,String>();
SAXReader reader = new SAXReader();
InputStream ins = request.getInputStream();
Document doc = reader.read(ins);
Element root = doc.getRootElement();
@SuppressWarnings("unchecked")
List<Element> list = (List<Element>)root.elements();
for(Element e:list){
map.put(e.getName(), e.getText());
}
ins.close();
return map;
}
/*
* 文本消息对象转xml
*/
public static String textMsgToxml(TextMessage textMessage){
XStream xstream = new XStream();
xstream.alias("xml", textMessage.getClass());
return xstream.toXML(textMessage);
}
}5、创建消息处理类MessageUtil: 6、在WeixinServlet类中新增doPost方法,用来响应微信用户发来的操作请求:
7、代码结构图:
四、本节小结
通过以上操作,我们在新增加一个功能的时候,首先要查看官方开发文档,依据其xml交互格式来封装自己的类和方法,在此基础上增加业务逻辑来实现符合自己的需求实现。
五、相关链接
更多学习讨论, 请加入
天亮教育官方群:318971238,
hadoop & spark & hive技术群:297585251,
官网:myhope365.com
官方天亮论坛:
天亮教育视频链接: 密码:zqa7
上一篇:
uniapp开发微信小程序-2.页面制作
