微信开发<二>接收普通消息、自动回复

消息类型有:
1 文本消息
2 图片消息
3 语音消息
4 视频消息
5 小视频消息
6 地理位置消息
7 链接消息
文本消息

ServletInputStream is = request.getInputStream();// 获得
                                                                // 输入流(微信端接收的消息报文)
            SAXReader reader = new SAXReader();// 读入数据
            Document doc;// dom4j.doucment文件结构,解析XML
            doc = reader.read(is);
            TextRsp rep = new TextRsp();// 创建一个文本消息的对象
            Element rootElement = doc.getRootElement();// rootElement( <xml>)
            // elements(<ToUserName>、<FromUserName>、<CreateTime>、<MsgType>。。。)
            List<Element> elements = rootElement.elements();

            // 交换FromUserName和ToUserName的内容
            for (Element element : elements) {
                System.out.println(element.getName());
                System.out.println(element.getStringValue());
                if (element.getName().equals("ToUserName")) {
                    rep.setFromUserName(element.getStringValue());
                }
                if (element.getName().equals("FromUserName")) {
                    rep.setToUserName(element.getStringValue());
                }

            }
            rep.setCreateTime(System.currentTimeMillis() + "");
            rep.setMsgType("text");//设置消息类型

发送消息
rep.setContent(“0000”);
String textMessageToXml = textMessageToXml(rep);//回复的消息转化为xml

    respextMessageToXml);//回复消息
    转化为XML需要导入xstrseam 的包
    public static String textMessageToXml(Object rsp) {
    xstrseam.alias("xml", rsp.getClass());
    return xstrseam.toXML(rsp);
}n xstrseam.toXML(rsp);
}


public static XStream xstrseam = new XStream(new XppDriver() {

    public HierarchicalStreamWriter createWriter(Writer out) {
        return new PrettyPrintWriter(out) {
            boolean cdata = true;

            protected void writeText(QuickWriter writer, String text) {
                if (cdata) {
                    writer.write("<![CDATA[");
                    writer.write(text);
                    writer.write("]]>");
                } else {
                    writer.write(text);
                }
            }
        };
    }

});

自动回复消息,连接图灵机器人从网上获取urll 和key
private static String urll = “http://www.tuling123.com/openapi/api“;
private static String key = “513e5227401d8333484deafec4d3ce73”;
private static String readLine;
String encode = URLEncoder.encode(recContent, “UTF-8”);
String addr = urll + “?key=” + key + “&info=” + encode;
URL url = new URL(addr);
URLConnection openConnection = url.openConnection();
openConnection.connect();
InputStream in = openConnection.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(in, “utf-8”));
readLine = br.readLine();
readLine = jsonToObject(readLine);readLine返回的是json字符串需要将就送字符串的content获取。。。。创建一个ContentBean类里面有code属性和text属性
public static String jsonToObject(String readLine) {

    Gson gson = new Gson();
    Content fromJson = gson.fromJson(readLine, Content.class);//将获得的json转化为Content对象


    return fromJson.getText();
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值