问题描述:后台代码如图(没有用@requestbody,@responsebody等其他注解,疑惑如何传参,没有指明请求方式get/post,默认是什么方式?),postman测试时get请求逻辑正常处理,post提交后台接收不到参数,附上链接地址
get:
post:
post方式下改了各种json格式都没成功,其中试了在dto参数加上@requestbody注解,post请求处理成功,但是get请求失败
解决:表单提交的数据(form-data不通)
如此也可以
总结:
Controller中有三种方式获取表单数据:
- Controller的方法,添加HttpServletRequst类型入参,通过HttpServletRequst.getParameter()获取请求数据
- Controller的方法,添加对应表单字段name的参数,有几个表单字段就添加多少个对应的入参
- Controller的方法,添加自定义Java类型的入参,并添加@ModelAttribute注解(实际上,可以不添加@ModelAttribute注解) ,由这个入参对象接收表单提交的数据
HTTP请求:
包含①状态行(请求方法,URL,协议/版本),②请求头<headers>包含客户端环境和请求正文编码context-type,③消息体<entity-body>,post提交的数据必须放在主体<entity-body>中。
常见的post提交数据的方式:application/x-www-form-urlencoded、multipart/form-data、application/json、text/xml