HttpServletRequest獲取POST請求參數3種方法
request.getInputStream()
private static String getPostData(HttpServletRequest request) { StringBuffer data = new StringBuffer(); String line = null; BufferedReader reader = null; try { reader = request.getReader(); while (null != (line = reader.readLine())) data.append(line); } catch (IOException e) { } finally { } return data.toString(); }
request.getInputStream()執行一次后(可正常讀取body數據),之后再執行就無效了。
@RequestBody
@RequestMapping(value = "/test", method = RequestMethod.POST) @ResponseBody public ServiceResult TestUrl(HttpServletRequest request, @RequestBody JSONObject jsonObject){ String username = jsonObject.get("username").toString(); String pwd = jsonObject.get("pwd").toString(); }
@RequestBody 可以使用JSONObject, Map ,或者ObjectDTO綁定body。
@RequestParam
@RequestMapping(value = "/test", method = RequestMethod.POST) @ResponseBody public ServiceResult TestUrl(HttpServletRequest request,@RequestParam("username")String username, @RequestParam("pwd")String pwd) { }