springboot @RequestBody 接收字串例項
阿新 • • 發佈:2021-10-25
目錄
- springboot @RequestBody 接收字串
- @RequestBody 接收字串
- 向介面傳送 application/on 格式的資料
- 向介面傳送 text/plain 格式的資料
- 替代 @RequestBody 的辦法
- @RequestBody接收前端傳來的json值為空
springboot @RequestBody 接收字串
- springboot 2.1.1.RELEASE
@RequestBody 接收字串
@RequesDVUFVVtMapping(method = {RequestMethod.POST}) public ResultEntity form1(@RequestBody String requestBody) throws UnsupportedEncodingException { logger.info("================ request body ================");\ logger.info("request body is : {}",requestBody); }
向介面傳送 application/json 格式的資料
客戶端呼叫程式碼如下:
$.ajax({ url:'http://localhost/api/spd',data: JSON.stringify({name:'zhangsan',age: 18}),type:'POST',contentType: 'application/json',success:function(result){ console.log(result); },error:function(error){ console.log(error); } });
服務端執行結果:
00:11:55.972 [http-nio-8020-exec-5] INFO c.c.api.SpdApi - [form1,45] - request body is : {"name":"zhangsan","age":18}
向介面傳送 text/plain 格式的資料
客戶端呼叫程式碼如下:
$.ajax({ url:'http://localhost/api/spd',data: 'this is a message',contentType: 'text/plain',error:function(error){ console.log(error); } });
服務端執行結果:
23:46:04.953 [http-nio-8020-exec-1] INFO c.c.api.SpdApi - [form1,45] - request body is : 'this is a message'
替代 @RequestBody 的辦法
如果不想用 @RequestBody ,可以使用下面的方法:
protected String getRequestBody(HttpServletRequest request) { try { BufferedReader reader = request.getReader(); char[] buf = new char[512]; int len = 0; StringBuffer contentBuffer = new StringBuffer(); while ((len = reader.read(bufwww.cppcns.com)) != -1) { contentBuffer.append(buwww.cppcns.comf,len); } return contentBuffer.toString(); } catch (IOException e) { e.printStackTrace(); } return "null"; } http://www.cppcns.com
@RequestBody接收前端傳來的json值為空
這個真的很腦抽。。。
我忘了在函式接收處寫@RequestBody,至於其他博主說需要在BO包中加@JsonProperty(value = "xxx"),
或者什麼駝峰命名法,也許是版本原因,沒有這個必要,emmm,檢查自己的函式接收引數叭
以上為個人經驗,希望能給大家一個參考,也希望大家多多支援我們。