springmvc接受参数时,有两种方式requestParam和requestBody
- requestParam注解接收参数,要求参数以键值对的方式存在.
- requestBody注解接收,要求参数必须以json方式发送,且content-type为application/json,并且要求请求方式为PoST
最近遇到reuqestParam和requestBody注解一起使用,请求方式为post 请求头为application/json,发现requestParam无法解析请求体的数据这与我理解的相冲突(只要是键值对就可以,不论是请求头还是请求体),而此时 我将参数放到请求体上 又可以请求到,我猜测有可能是conten-type的问题
最后通过postman的不断验证发现: 发现requestParam可以获取post请求体的数据,当且仅当conten-type为x-www-form-urlencoded和multipart/form-data,当content-type为application/json时,只能通过reuqestBody获取请求体内的json数据数据,当然requestParam无论如何都可以通过键值对获取请求头数据
推荐博客
https://blog.csdn.net/honnyee/article/details/80651898
https://www.cnblogs.com/zhouj850/p/10931403.html