调用接口发送消息成功,那服务器配置肯定是对的,但是收不到微信推送的消息,比如关注事件。
@RequestMapping(value = "/", method = {RequestMethod.GET})
public String wx(@RequestParam String signature, @RequestParam String timestamp, @RequestParam String nonce, String echostr, HttpServletRequest request, HttpServletResponse response) {
if (!wxMpService.checkSignature(timestamp, nonce, signature)) {
LOGGER.info("非法请求, signature:{}", signature);
return "非法请求";
}
if (StringUtils.isNotBlank(echostr)) {
LOGGER.info("验证:{}", echostr);
return echostr;
}
LOGGER.info("wx:", JSON.toJSONString(request));
return null;
}
@RequestMapping(value = "/", method = {RequestMethod.POST})
public String service( HttpServletRequest request, HttpServletResponse response) throws Exception {
LOGGER.info("service, request: {},", JSON.toJSONString(request));
WxMpXmlMessage inMessage = WxMpXmlMessage.fromXml(request.getInputStream());
WxMpXmlOutMessage outMessage = wxMpMessageRouter.route(inMessage);
if(outMessage == null) {
LOGGER.info("outMessage is null");
return "";
}
return outMessage.toXml();
}
get请求验证配置是通过的,post请求接不到数据,求问题所在,谢谢了
Vous avez évidemment spécifié method = {RequestMethod.GET}
;produces
: Spécifie le type de contenu à renvoyer. Il ne sera renvoyé que si le type (Accepter) dans l'en-tête de requêterequest
contient le type spécifiéJe n'ai pas essayé l'effet de request.getInputStream. Voici ce que j'ai écrit :
Je viens de le chercher pour vous. Il n'est pas possible d'utiliser inputStream car spring-mvc l'a déjà consommé.
Référencehttp://hw1287789687.iteye.com/blog/2199295
Merci pour vos réponses. Le problème a été résolu. La raison est que
.security
est utilisé dans le projetCROS
est bloqué et il n'y a aucun problème avec l'écritureBonjour, j'ai également rencontré le même problème que vous. Quelle est l'idée de recherche spécifique ? Je n'ai pas configuré la sécurité, alors par où dois-je commencer pour résoudre le problème lorsque je ne peux pas recevoir de demandes ? Mon email : jtmjx@163.com, QQ : 253552550, veuillez me nommer, merci.