使用Java搭建微信公众号后端服务--微信消息体解析及响应

一.消息体分析

这里说的微信消息体,就是用户与公众号交互后,通过微信服务器传送到开发者服务器的信息。拿普通的文本消息来说,其消息的组成如下:
在这里插入图片描述

二.创建对应的DTO

根据图,我们可以得知,消息体由ToUserName、FromUserName、CreateTime、MsgType、Content、MsgId几个部分组成。
由此,我们可以创建一个对应的实体类,包含上述几个属性。
在这里插入图片描述
创建对应的DTO的作用是因为,我们可以使用XStream实现xml字符串和DTO之间的转换,这样方便在业务层面的数据传递,还有一种方式,就是使用Dom4j来解析xml,并将其传入一个map中来存储信息,但是这样,每次取值就相对麻烦一点,因此,我建议使用实体类传输。

三.获取消息

当用户与微信交互时,微信服务器将通过POST请求,将数据到开发者服务器上,此时,我们需要通过HttpServletRequest来获取POST请求中的消息体数据,就是从流中获取数据,具体的代码如下:

/**
     * 获取POST请求中Body参数
     * @param request
     * @return 字符串
     */
    public static String getRequestBody(HttpServletRequest request) {
        BufferedReader br = null;
        try {
            br = new BufferedReader(new InputStreamReader(request.getInputStream(), "UTF-8"));
        } catch (IOException e) {
            e.printStackTrace();
        }
        String line = null;
        StringBuilder sb = new StringBuilder();
        try {
            while ((line = br.readLine()) != null) {
               
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值