很多開發幾年的程序猿有一個習慣,會在接口中打印獲取到的參數日誌。 而前端或者第三方是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(); }