java web 接收application/json的post请求数据
接收前端或第三方推送的Post请求数据时,通常利用request获取参数可以直接通过request.getParameter("name")的方式获取URL上或者ajax data提交上来的参数。但是body是没有名字的,无法通过参数名字这种方式获取。
两个方法:
方法一:通过@RequestBody进行获取请求中的body内容,注意:通过实体类的方式接收必须使上传的参数名称与实体类中的属性名称一致。
public ReturnT addAutomaticOperationTactics(HttpServletRequest request, @RequestBody User user) throws Exception { return ReturnT.SUCCESS; }
方法二:通过IO流的方式提取body中的数据
import com.alibaba.fastjson.JSONObject;
public ReturnT<Object> disciplineViolation(HttpServletRequest request) throws Exception{ try { BufferedReader streamReader = new BufferedReader( new InputStreamReader(request.getInputStream(), "UTF-8")); StringBuilder responseStrBuilder = new StringBuilder(); String inputStr; while ((inputStr = streamReader.readLine()) != null){ responseStrBuilder.append(inputStr); } JSONObject jsonObject = JSONObject.parseObject(responseStrBuilder.toString()); String stuNo = jsonObject.getString("stuNo"); return objectReturnT; } catch (Exception e) { e.printStackTrace(); throw new Exception(e.getMessage()); } }