调用接口发送消息成功,那服务器配置肯定是对的,但是收不到微信推送的消息,比如关注事件。
@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请求接不到数据,求问题所在,谢谢了
明らかに、method = {RequestMethod.GET}
を指定しました。produces
: 返されるコンテンツ タイプを指定します。request
リクエスト ヘッダーの (Accept) タイプに指定されたタイプが含まれる場合にのみ返されます。request.getInputStream の効果は試していません。私が書いたのは次のとおりです。
リーリーあなたのためにそれを検索しました。spring-mvc がすでに使用しているため、inputStream を使用することはできません。
参考 http://hw1287789687.iteye.com/blog/2199295
ご回答ありがとうございます。
security
が制限されているため、問題は解決しました。CROS
の書き込みには問題ありません。こんにちは、私もあなたと同じ問題に遭遇しました。具体的な検索方法は何ですか?セキュリティの設定をしていないのですが、リクエストを受信できない場合はどこから解決すればよいですか?私のメールアドレス: jtmjx@163.com、QQ: 253552550、私の名前を教えてください、ありがとうございます。