1. 程式人生 > >Java獲取post請求json資料

Java獲取post請求json資料

一般情況下,web應用中,瀏覽器傳送http請求,傳引數的時候都是作為param傳遞的,java服務端通過request.getParameter(name)可以獲取引數內容;

但是會有一些場景,把引數放在了http的payload中(contentType:”application/json”),這時,使用getParameter就獲取不到了, 比如下面這張圖,引數是json字串,放在了payload中
http payload

實際上,payload,就是http的body,通過讀取body,就獲取到了

1. 原生servlet獲取

http body通過讀取input流可以得到

12345678 br = new
BufferedReader(new InputStreamReader((ServletInputStream) request.getInputStream(), "utf-8"));StringBuffer sb = new StringBuffer("");String temp;while ((temp = br.readLine()) != null) { sb.append(temp);}br.close();params = sb.toString();

如果傳遞的是json,得到字串之後,再反序列化成json物件就可以了

2. springmvc獲取

SpringMVC中有一個@RequestBody註解,就是用來將請求body中的json轉換為java物件的,不僅轉換普通的java bean,也可以是List,很方便

123456 @RequestMapping(value = "/query", method = RequestMethod.POST)public ModelAndView queryList(@ModelAttribute("ReportBo") ReportBo query, @RequestBody ReportBo query1, HttpServletRequest request) { }
0