springboot接收application/x-www-form-urlencoded类型的请求,获取不到数据

接收application/x-www-form-urlencoded类型的请求,我的controller是如下处理

@PostMapping("/insert")
@ResponseBody
private ResultVO insert1(@RequestParam(value = "imei") String imei,@RequestParam(value = "data") String data) {}
然后获取到imei和data是null

然后了解到x-www-form-urlencoded的请求是json的数据,应该如下处理

private ResultVO insert1(@RequestBody String body) {}
获取到的body是imei=11111112&data=1%2C2%2C3%2C4%2C5%2C6%2C7%3B1%2C2%2C3%2C4%2C5%2C6%2C7

因为数据比较少,我把"%2C"转成“,”,"%3B"转成“;”,就可以拼凑成为imei=1&data=1,2,3,4,5,6,7;1,2,3,4,5,6,7

让后字符串处理可以得到imei和data

后面我发现一种更好的方法:

@PostMapping("/insert")
@ResponseBody
private ResultVO insert1(@RequestParam Map<String, String> params) {}
获取数据直接

String data=params.get("data");
String imei=params.get("imei");
可以正确解析x-www-form-urlencoded请求的参数

posted @ 2019-11-08 17:24  代码酷  阅读(24306)  评论(1编辑  收藏  举报