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请求的参数