【JAVA】接收http請(qǐng)求body中的json數(shù)據(jù)

上傳文件的方式, 順帶傳遞參數(shù), 后臺(tái)Java 如何獲取
原文章地址: http://blog.techbeta.me/2015/12/java-http-json/


一般情況下,web應(yīng)用中,瀏覽器發(fā)送http請(qǐng)求,傳參數(shù)的時(shí)候都是作為param傳遞的,java服務(wù)端通過request.getParameter(name)可以獲取參數(shù)內(nèi)容;

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

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


  1. 原生servlet獲取
    http body通過讀取input流可以得到
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對(duì)象就可以了


  1. springmvc獲取
    SpringMVC中有一個(gè)@RequestBody
    注解,就是用來將請(qǐng)求body中的json轉(zhuǎn)換為java對(duì)象的,不僅轉(zhuǎn)換普通的java bean,也可以是List,很方便
@RequestMapping(value = "/query", method = RequestMethod.POST)
public ModelAndView queryList(@ModelAttribute("ReportBo") ReportBo query, 
  @RequestBody ReportBo query1, 
  HttpServletRequest request) { 
  //TODO
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評(píng)論 19 139
  • tags:springmvc categories:筆記 date: 2016-08-14 22:19:31 由于...
    行徑行閱讀 9,785評(píng)論 2 12
  • 這個(gè)主題其實(shí)想了解下SpringMVC的兩種不同的參數(shù)提交方式和接受方式。 SpringMVC的數(shù)據(jù)流程圖: Js...
    輝蛋兒閱讀 6,718評(píng)論 1 4
  • 倘若游走千年以前 要看遍這滄海陸地 浩蕩世間 把北宋的龍井就著長(zhǎng)安的月色飲下 將汝窯的新瓷插上汴梁二月的梅花 看金...
    木衛(wèi)十閱讀 435評(píng)論 0 6
  • 今天晚上就出發(fā)廈門 剛剛才收拾好行李 說起來 每次出行從來都是一個(gè)背 簡(jiǎn)單及方便 想象自己是一個(gè)背包客 行走在各個(gè)...
    曼曼噠閱讀 194評(píng)論 0 0

友情鏈接更多精彩內(nèi)容