1. 程式人生 > 程式設計 >springboot @RequestBody 接收字串例項

springboot @RequestBody 接收字串例項

目錄
  • 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"),

    springboot @RequestBody 接收字串例項

    或者什麼駝峰命名法,也許是版本原因,沒有這個必要,emmm,檢查自己的函式接收引數叭

    springboot @RequestBody 接收字串例項

    以上為個人經驗,希望能給大家一個參考,也希望大家多多支援我們。