當我嘗試使用微信公共平臺時,微信服務器將調用我的一個API,我需要返回一個令牌來驗證我的身份。但是,當我直接返回令牌時,weChat服務器會提示驗證錯誤。@ResponseBody和HttpServletResponce之間有什麼區別
@RequestMapping(value="/userFollow", method= RequestMethod.GET)
@ResponseBody
public String weChatToken(HttpServletRequest request,String signature,String timestamp,String nonce,String echostr,HttpServletResponse response) throws IOException, DocumentException {
String result=weChatService.checkSignature(signature,timestamp,nonce,echostr);
return result;
}
然後我改變了我的代碼如下。這一次,驗證是正確的。
@RequestMapping(value="/userFollow", method= RequestMethod.GET)
@ResponseBody
public String weChatToken(HttpServletRequest request,String signature,String timestamp,String nonce,String echostr,HttpServletResponse response) throws IOException, DocumentException {
String result=weChatService.checkSignature(signature,timestamp,nonce,echostr);
PrintWriter pw=response.getWriter();
pw.write(result);
pw.flush();
return null;
}
我用Google搜索,並得到了使用@Responsebody
時,春消息寫入響應的主體。 那麼他們之間有什麼區別?爲什麼第一種方法是錯誤的?
responseBody只是響應的主體,而'HttpServletResponce'包含整個響應,例如標題,Cookie,正文等。 –
發佈的代碼是否正確?兩種方法都有@ResponseBody? –