在不同的参数上使用不同的注解,在进行http请求的时候,发现Get和Post有时有的竟然无法请求,所以简单总结一下,各个注解,可以成功请求的对应方式
注解\请求方式 | GET | POST(application/x-www-form-urlencoded) | POST(Json或XML) |
---|---|---|---|
@RequestParam | 支持(仅单个参数) | 支持 | 不支持(”status”: 400) |
@RequestBody | 不支持(”status”: 400) | 不支持(”status”: 415) | 支持(解析为javabean) |
参数省略注解 | 支持(单个参数和解析为javabean) | 支持 | 不支持(解析出来的javabean参数全部为null,0) |
- @RequestBody 只能使用在javaBean参数上
- 参数没有注解,说明参数不是必须的
- 使用postman中 form-data上传文件的时候,注意header里面的content-type最好清空
HttpServletRequest 和 HttpServletResponse 不受这些注解影响,因为获取他们,spring mvc 有特殊的类进行处理。
网上有文章说,HttpServletRequest 和 HttpServletResponse 只能在POST(application/x-www-form-urlencoded)情况下获得,经过测试发现时错误的
参考:
postman中 form-data、x-www-form-urlencoded、raw、binary的区别
SpringMVC重要接口(一)HandlerMethodArgumentResolver
详解SpringMVC中Controller的方法中参数的工作原理[附带源码分析]
解决httpServletRequest.getParameter获取不到参数
spring boot get和post请求,以及requestbody为json串时候的处理
在postman中,调试上传文件接口