重庆小潘seo博客

当前位置:首页 > 重庆网络营销 > 小潘杂谈 >

小潘杂谈

分享java版微信机器人的实现方法

时间:2020-09-05 23:00:10 作者:重庆seo小潘 来源:
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.HttpServletRespo

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>以上就是分享java版微信机器人的实现方法的详细内容,更多请关注小潘博客其它相关文章!