好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

springboot @RequestBody 接收字符串实例

springboot @RequestBody 接收字符串

springboot 2.1.1.RELEASE

@RequestBody 接收字符串

?

1

2

3

4

5

    @RequestMapping (method = {RequestMethod.POST})

    public ResultEntity form1( @RequestBody String requestBody) throws UnsupportedEncodingException {

  logger.info( "================ request body ================" );\

  logger.info( "request body is : {}" , requestBody);

}

向接口传送 application/json 格式的数据

客户端调用代码如下:

?

1

2

3

4

5

6

7

8

9

10

11

12

$.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 格式的数据

客户端调用代码如下:

?

1

2

3

4

5

6

7

8

9

10

11

12

$.ajax({

     url: 'http://localhost/api/spd' ,

     data: 'this is a message' ,

     type: 'POST' ,

     contentType: 'text/plain' ,

     success: function (result){

         console.log(result);

     },

     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 ,可以使用下面的方法:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

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(buf)) != - 1 ) {

    contentBuffer.append(buf, 0 , len);

   }

   return contentBuffer.toString();

  } catch (IOException e) {

   e.printStackTrace();

  } 

  return "null" ;

}

@RequestBody接收前端传来的json值为空

这个真的很脑抽。。。

我忘了在函数接收处写@RequestBody,至于其他博主说需要在BO包中加@JsonProperty(value = "xxx"),

或者什么驼峰命名法,也许是版本原因,没有这个必要,emmm,检查自己的函数接收参数叭

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。

原文链接:https://sayyy.blog.csdn.net/article/details/117457645

查看更多关于springboot @RequestBody 接收字符串实例的详细内容...

  阅读:26次