qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          java微信機器人

          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;//創建日期
          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();http://www.huiyi8.com/tishiyin/ 提示音
          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>

          posted on 2014-08-01 09:53 順其自然EVO 閱讀(284) 評論(0)  編輯  收藏 所屬分類: 測試學習專欄

          <2014年8月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 金湖县| 隆回县| 乌拉特中旗| 京山县| 石渠县| 淮滨县| 巴林左旗| 上思县| 麟游县| 邢台市| 米易县| 宁明县| 淄博市| 银川市| 阿克陶县| 通河县| 呈贡县| 白水县| 高雄市| 海口市| 会东县| 霍邱县| 循化| 泽普县| 时尚| 八宿县| 随州市| 凤山市| 定结县| 荥阳市| 农安县| 青浦区| 清远市| 北票市| 瑞丽市| 错那县| 汤原县| 冷水江市| 和田县| 客服| 堆龙德庆县|