java版微信机器人代码
发布时间:2020-05-24 22:03:55 所属栏目:Java 来源:互联网
导读:java版微信机器人代码
|
下面是脚本之家 jb51.cc 通过网络收集整理的代码片段。 脚本之家小编现在分享给大家,也给大家做个参考。
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,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","fromUserName");
xstream.aliasField("CreateTime","createTime");
xstream.aliasField("MsgType","messageType");
xstream.aliasField("Content","content");
xstream.aliasField("MsgId","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,"content");
xstream.aliasField("FuncFlag","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>
</dependencies>
以上是脚本之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。 如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- java – Windows批处理文件多次运行jar文件
- java – 带有空行的缓冲读取器readLine()
- Java中的接口数组
- java – 虚拟Web服务
- java-org.openqa.selenium.UnsupportedCommandException:使
- java – ScheduledExecutorService并行多个线程
- java – 用于云服务“沙盒”的SecurityManager
- 快速入门介绍Java中强大的String.format()
- java – 使用volatile和synchronized时,刷新或发布到各种线
- 迁移Jersey项目以在jersey.repackaged.org.objectweb.asm.C
