SpringBoot 中默认可以使用多个@RequestBody的接收参数吗?报I/O error while reading input message错怎么办?

最近的SpringBoot项目中post提交需要传多个参数,于是就凭直觉在方法里写了两个参数接收前端传过来的JSON对象

(@RequestBody A a, @RequestBody B b),但是报错后才发现问题所在。

报错内容如下:

I/O error while reading input message; nested exception is java.io.IOException: Stream closed]

查了下资料后才知道:SpringMVC中@RequestBody是读取的流的方式, 在取 body参数时第一个参数取到后把request.getInputStream()关闭,导致后面的@requestBody的对象拿取不到,就报错了。

又接着了解到,其实请求参数永远都是一个,因为一个request中只包含一个request body. 理解了这个,就会明白Spring MVC不支持多个@RequestBody。

然后看到网上的解决方法大概有以下几种:

猜你喜欢

转载自blog.csdn.net/qq_35624642/article/details/103351337