微信 接入机器人 java_Java版微信机器人代码

微信 接入机器人 java_Java版微信机器人代码packagecom.eiyoung.wechat.web.controller;importjava.io.IOException;importjava.io.PrintWriter;importjava.util.Date;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;import…

大家好,又见面了,我是你们的朋友全栈君。

package com.eiyoung.wechat.web.controller;

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;//创建日期

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/148838.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 可用的公开 RTSP/ RTMP 在线视频流资源地址[通俗易懂]

    更新时间:2020年11月09日最近在做海康视频的流媒体转码,特收集几个可以访问的在线流媒体资源测试使用:RTSP:rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.movRTMP:湖南卫视:rtmp://58.200.131.2:1935/livetv/hunantv广东卫视:rtmp://58.200.131.2:1935/livetv/gdtv东方卫视:rtmp://58.200.131.2:1935/livet

    2022年4月6日
    176
  • WPF Visifire 入门-动态曲线图[通俗易懂]

    WPF Visifire 入门-动态曲线图[通俗易懂]kagula2019-3-18这里用源代码的形式,示范如何画出一个最简单的动态曲线图。开发环境,Visualstudio2017CommunityUpdate5项目类型:WPFC#.NetFramework4.6.1本文适用对象:有两年没有开发C#WPF的程序员,通过这个示例可以快速回忆。下面是运行效果图,不停显示最新生成的十个数据点。让…

    2022年7月21日
    11
  • TOMCAT 严重: Error filterStart

    TOMCAT 严重: Error filterStart早上,练习了一个关于struts2的程序,结果tomcat一直报错:TOMCAT严重:ErrorfilterStart,在网上找了各种方法,都不管用,最后干脆把tomcat5.0卸了,直接下了一个6.0的版本,结果问题解决.这可能是tomcat6.0的弥补了5.0存在的一些漏洞吧,(我个人感觉啊),上网也查了一下,Tomcat6.x在目录结构上就是针对lib包的存放位置做了调整,使应用…

    2022年7月11日
    12
  • 模板阴影理论概述

    模板阴影理论概述尹克雄|2002年12月02日07:30|图形编程与理论阴影 体积 平面 模板 光 前身 图 深度 夹讨论使用模板阴影卷的几种方法,包括每种阴影卷的优点和缺点。介绍阴影以前只是一个变暗的纹理,通常是圆形的形状,它被投射到游戏中的字符或对象之下的地板上。一个人必须不知情或天真地认为,我们仍然可以在未来的3D游戏中摆脱这种粗暴的“

    2022年6月2日
    44
  • MVC框架详解(资源整理)

    MVC框架详解(资源整理)一、什么是MVC?二、SpringMVC流程图详解三、简单例子四、常用注解总结五、MVC优点与不足

    2022年6月22日
    25
  • zencart包包模板

    zencart包包模板很适合包包,鞋子的一款模板,该zencart模板为成品网站该网站的zencart版本为zencart1.3.9h该安装的常用插件有:1、ultimateseourls2、CSS/JSLoader3、JQzoom放大镜4、RSSFeed5、FastandEasyCheckout6、ImageHandler37、EasyPop

    2022年7月27日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号