import java.io.IOException; import java.io.PrintWriter; import java.util.Date; import javax.servlet.servletexception; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.eiyoung.wechat.web.utils.Message; import com.eiyoung.wechat.web.utils.ReplyMessage; import org.apache.commons.io.IoUtils; import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.io.xml.DomDriver; public class WeChat extends HttpServlet { private static final long serialVersionUID = 1L; public WeChat() { super(); } /** * 验证 * @param request * @param response * @throws servletexception * @throws IOException */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws servletexception, IOException { response.setContentType(text/html;charset=UTF-8); PrintWriter pw = response.getWriter(); String echo = request.getParameter(echostr); System.out.print(echo); echo = new String(echo.getBytes(ISO-8859-1),UTF-8); pw.println(echo); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws servletexception, IOException { response.setContentType(text/html;charset=UTF-8); PrintWriter pw = response.getWriter(); String wxmsgXml = IoUtils.toString(request.getInputStream(),utf-8); Message textMsg = null; try { textMsg = getMessage(wxmsgXml); } catch (Exception e) { e.printstacktrace(); } StringBuffer replyMsg = new StringBuffer(); if(textMsg != null){ //增加你所需要的处理逻辑,这里只是简单重复消息 replyMsg.append(您给我的消息是:); replyMsg.append(textMsg.getContent()); } else{ replyMsg.append(:)不是文本的消息,我暂时看不懂); } String returnXml = getReplyMessage(replyMsg.toString(), textMsg.getFromUserName(),textMsg.getToUserName()); System.out.print(textMsg.toString()); System.out.print(returnXml.toString()); pw.println(returnXml); } private Message getMessage(String xml){ XStream xstream = new XStream(new DomDriver()); xstream.alias(xml, Message.class); xstream.aliasField(ToUserName, Message.class, toUserName); xstream.aliasField(FromUserName, Message.class, fromUserName); xstream.aliasField(CreateTime, Message.class, createTime); xstream.aliasField(MsgType, Message.class, messageType); xstream.aliasField(Content, Message.class, content); xstream.aliasField(Msgid, Message.class, msgid); Message Message = (Message)xstream.fromXML(xml); return Message; } private String getReplyMessage(String replyMsg,String toUserName,String fromUserName){ ReplyMessage we = new ReplyMessage(); we.setMessageType(text); we.setFuncFlag(0); we.setCreateTime(new Long(new Date().getTime()).toString()); we.setContent(replyMsg); we.setToUserName(toUserName); we.setFromUserName(fromUserName); XStream xstream = new XStream(new DomDriver()); xstream.alias(xml, ReplyMessage.class); xstream.aliasField(ToUserName, ReplyMessage.class, toUserName); xstream.aliasField(FromUserName, ReplyMessage.class, fromUserName); xstream.aliasField(CreateTime, ReplyMessage.class, createTime); xstream.aliasField(MsgType, ReplyMessage.class, messageType); xstream.aliasField(Content, ReplyMessage.class, content); xstream.aliasField(FuncFlag, ReplyMessage.class, funcFlag); String xml =xstream.toXML(we); return xml; } } =========================================================================== package com.eiyoung.wechat.web.utils; /** * Created with IntelliJ IDEA. * User: sb * Date: 8/1/13 * Time: 10:37 PM * To change this template use File | Settings | File Templates. */ public class ReplyMessage { private String FuncFlag;//消息编号 private String fromUserName;//发送人 private String toUserName;//接收人 private String content;//内容 private String messageType;//消息类型 private String createTime;//创建日期 public String getContent() { return content; } public void setContent(String content) { this.content = content; } public String getMessageType() { return messageType; } public void setMessageType(String messageType) { this.messageType = messageType; } public String getFromUserName() { return fromUserName; } public void setFromUserName(String fromUserName) { this.fromUserName = fromUserName; } public String getToUserName() { return toUserName; } public void setToUserName(String toUserName) { this.toUserName = toUserName; } public String getCreateTime() { return createTime; } public void setCreateTime(String createTime) { this.createTime = createTime; } public String getFuncFlag() { return FuncFlag; } public void setFuncFlag(String funcFlag) { FuncFlag = funcFlag; } public String toString(){ return createTime:+getCreateTime()+\\ntoUserName:+getToUserName()+\\n FromUserName:+getFromUserName()+\\nmessageType:+getMessageType()+\\ncontent:+getContent(); } } =============================================================================== package com.eiyoung.wechat.web.utils; import java.util.Date; /** * Created with IntelliJ IDEA. * User: sb * Date: 8/1/13 * Time: 10:37 PM * To change this template use File | Settings | File Templates. */ public class Message { private String msgid;//消息编号 private String fromUserName;//发送人 private String toUserName;//接收人 private String content;//内容 private String messageType;//消息类型 private String createTime;//创建日期 public String getContent() { return content; } public void setContent(String content) { this.content = content; } public String getMessageType() { return messageType; } public void setMessageType(String messageType) { this.messageType = messageType; } public String getFromUserName() { return fromUserName; } public void setFromUserName(String fromUserName) { this.fromUserName = fromUserName; } public String getToUserName() { return toUserName; } public void setToUserName(String toUserName) { this.toUserName = toUserName; } public String getCreateTime() { return createTime; } public void setCreateTime(String createTime) { this.createTime = createTime; } public String getMsgid() { return msgid; } public void setMsgid(String msgid) { this.msgid = msgid; } public String toString(){ return msgid:+getMsgid()+\\ncreateTime:+getCreateTime()+\\ntoUserName:+getToUserName()+\\n FromUserName:+getFromUserName()+\\nmessageType:+getMessageType()+\\ncontent:+getContent(); } } ============================================================================== maven <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>3.0-alpha-1</version> </dependency> <dependency> <groupId>joda-time</groupId> <artifactId>joda-time</artifactId> <version>2.2</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-io</artifactId> <version>1.3.2</version> </dependency> <dependency> <groupId>com.thoughtworks.xstream</groupId> <artifactId>xstream</artifactId> <version>1.4.3</version> </dependency>
原文地址:https://www.jb51.cc/wxmp/1203220.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。