国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Java > 正文

解讀@RequestBody的正確使用方法

2024-07-13 10:16:47
字體:
來源:轉載
供稿:網友

本文主要研究的是關于@RequestBody的正確使用方法的相關內容,具體如下。

最近在接收一個要離職同事的工作,接手的項目是用SpringBoot搭建的,其中看到了這樣的寫法:

@RequestMapping("doThis") public String doThis(HttpServletRequest request,     @RequestParam("id") Long id, // 用戶ID     @RequestParam("back_url") String back_url, // 回調地址          @RequestBody TestEntity json_data // json數據,對于java實體類 ){//... 

這個是一個請求映射方法,然后用瀏覽器輸入url:http://127.0.0.1:8080/test/doThis?id=1&back_url=url&json_data={"code":2,"message":"test"}

在這個方法中,使用@RequestParam獲取參數,然后使用@RequestBody對json格式的參數轉換為Java類型

在運行的時候發現報錯:Required request body is missing

@RequestBody的使用需要加載MappingJackson2HttpMessageConverter,但是SpringBoot的官方文檔提到,這個是默認已經加載的了,而且json字符串和javabean也沒有書寫的錯誤

因此考慮到應該是請求Content-Type的問題,因為使用瀏覽器輸入url的方式沒有辦法定義Content-Type,因此spring無法發現request body

為了證實這個想法,自己書寫一個請求類:

String add_url = "http://127.0.0.1:8080/test/doThis";   URL url = new URL(add_url);   HttpURLConnection connection = (HttpURLConnection)url.openConnection();   connection.setDoInput(true);   connection.setDoOutput(true);   connection.setRequestMethod("POST");   connection.setUseCaches(false);   connection.setInstanceFollowRedirects(true);   connection.setRequestProperty("Content-Type","application/json");   connection.connect();   DataOutputStream out = new DataOutputStream(connection.getOutputStream());   JSONObject obj = new JSONObject();      obj.put("code", -1002);      obj.put("message", "msg");   out.writeBytes(obj.toString());   out.flush();   out.close(); 

請求還是失敗,經過調試,發現需要去掉所有的@RequestParam注解才能成功

總結

1、@RequestBody需要把所有請求參數作為json解析,因此,不能包含key=value這樣的寫法在請求url中,所有的請求參數都是一個json

2、直接通過瀏覽器輸入url時,@RequestBody獲取不到json對象,需要用java編程或者基于ajax的方法請求,將Content-Type設置為application/json

以上就是本文關于解讀@RequestBody的正確使用方法的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 巴彦淖尔市| 永城市| 宜州市| 大足县| 普陀区| 泰安市| 桓台县| 张家港市| 兖州市| 九寨沟县| 平湖市| 渝中区| 桃园县| 建瓯市| 都江堰市| 三原县| 花莲市| 庆元县| 岱山县| 漳浦县| 塘沽区| 平利县| 南雄市| 镇平县| 高淳县| 兴化市| 乐山市| 沂源县| 边坝县| 金门县| 宁阳县| 潞西市| 论坛| 海门市| 通城县| 革吉县| 耒阳市| 宜丰县| 兴隆县| 木里| 昌乐县|