总结Content-Type和后端对应的接收参数方式


Content-Type常用到的值:

application/x-www-form-urlencoded 默认值;
application/json : JSON数据格式;
multipart/form-data;
application/octet-stream : 二进制流数据(如常见的文件下载)
当然还有很多可选的值,这里就不一一列出了;

post请求
1、当使用form-data、x-www-form-urlencoded时:后台不可以用@RequestBody;可以用@RequestParam。可以理解成参数都在请求param中,而不在请求体;
2、当使用application/json时:后台json字符串部分可以用@RequestBody;url中拼接的参数可以用@RequestParam

从注解的维度考虑:

(@RequestBody Map map),(@RequestBody Object object);
application/json时候可用,form-data、x-www-form-urlencoded时候不可用

(@RequestParam Map map);
application/json时候,json字符串部分不可用,url中的?后面添加参数即可用,form-data、x-www-form-urlencoded时候可用,但是要将Headers里的Content-Type删掉

(@RequestParam String waterEleId,@RequestParam String enterpriseName);
application/json时候,json字符串部分不可用,url中的?后面添加参数即可用
form-data、x-www-form-urlencoded时候可用,且参数可以没有顺序(即前端传过来的参数或者url中的参数顺序不必和后台接口中的参数顺序一致,只要字段名相同就可以),但是要将Headers里的Content-Type删掉

(@RequestParam Object object);
不管application/json、form-data、x-www-form-urlencoded都不可用

既不是@RequestBody也不是@RequestParam,没有指定参数哪种接收方式: (Map map),(Object object);
application/json时候:json字符串部分不可用,url中的?后面添加参数不可用。
因为没有指定,它也不知道到底是用json字符串部分还是?后面添加参数部分,所以干脆都不可以用
form-data、x-www-form-urlencoded时都不可用

(HttpServletRequest request)
application/json不可用
form-data、x-www-form-urlencoded时可用

get请求
只能使用@RequestParam注解接受参数
从注解维度考虑:

RequestBody – Map / Object
GET请求中不可以使用@RequestBody
(@RequestParam Map map)
在url中的?后面添加参数即可使用
(@RequestParam String waterEleId,@RequestParam String enterpriseName)
在url中的?后面添加参数即可使用
(@RequestParam Object object)
GET请求中不可以使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值