服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - springboot @RequestBody 接收字符串实例

springboot @RequestBody 接收字符串实例

2022-02-25 00:55sayyy Java教程

这篇文章主要介绍了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"),

springboot @RequestBody 接收字符串实例

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

springboot @RequestBody 接收字符串实例

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

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

延伸 · 阅读

精彩推荐