很多开发几年的程序猿有一个习惯,会在接口中打印获取到的参数日志。 而前端或者第三方是json请求的话,获取数据就要从request中的流中获取 而request中的流获取一次就没了 比如:
public String ceshi(HttpServletRequest request){ log.warn("xxx订阅---" + getSubscribeJson(request)); String str = getSubscribeJson(request); }
这样的话str这个字符串中就是空的
/** * 从request中获取json * * @param request * @return */ public String getSubscribeJson(HttpServletRequest request) { BufferedReader reader = null; StringBuilder sb = new StringBuilder(); try { reader = new BufferedReader(new InputStreamReader(request.getInputStream(), "utf-8")); String line = null; while ((line = reader.readLine()) != null) { sb.append(line); } } catch (IOException e) { e.printStackTrace(); } finally { try { if (null != reader) { reader.close(); } } catch (IOException e) { e.printStackTrace(); } } return sb.toString(); }