调用接口发送消息成功,那服务器配置肯定是对的,但是收不到微信推送的消息,比如关注事件。
@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请求接不到数据,求问题所在,谢谢了
Jelas sekali anda menetapkan kaedah = {RequestMethod.GET}
produces
: Menentukan jenis kandungan yang akan dikembalikan Ia hanya akan dikembalikan jika jenis (Terima) dalam pengepala permintaanrequest
mengandungi jenisSaya belum mencuba kesan request.getInputStream Inilah yang saya tulis:
Saya baru sahaja mencarinya untuk anda. Tidak boleh menggunakan inputStream kerana spring-mvc telah menggunakannya.
Rujukanhttp://hw1287789687.iteye.com/blog/2199295
Terima kasih atas jawapan anda Masalahnya telah diselesaikan Sebabnya ialah
security
digunakan dalam projek adalah terhad dan permintaan disekatCROS
Helo, saya juga mengalami masalah yang sama seperti anda. Saya belum mengkonfigurasi keselamatan, jadi di manakah saya harus mula menyelesaikan masalah apabila saya tidak dapat menerima permintaan? E-mel saya: jtmjx@163.com, QQ: 253552550, sila namakan saya, terima kasih.