微信公众号后台接收XML格式的POST请求
在Spring项目下只需要加上在接收参数@RequestBody注解即可,之前我试过对象接收有不是所有消息都能解析,换成使用String接收就正常了,然后通过string2Map吧接收到的xml用dom4j转成Map即可
本专栏说明以及源码地址:微信开发专栏说明
@PostMapping(value = "/master")
public void receiver(@RequestBody String xml,HttpServletResponse resp){
try {
System.out.println(xml);
Map<String, String> msgMap = MessageUtil.string2Map(xml);
log.info("用户消息:{}",msgMap);
String handlerMsg = weXinService.handlerMsg(msgMap);
log.info("返回消息:{}",handlerMsg);
resp.setContentType("text/xml;charset=UTF-8");
resp.setCharacterEncoding("UTF-8");
resp.getWriter().write(handlerMsg);
} catch (IOException e) {
e.printStackTrace();
}
}
System.out.println(xml); 输出效果如下