关于接收x-www-form-urlencoded格式数据的后端
关于接收x-www-form-urlencoded格式数据的后端前言一、x-www-form-urlencoded格式是什么?二、后端如何接收1.后端代码(使用@RequestBody+ String类型接收 )2.(错误的)后端代码(使用@RequestBody+ 自己封装类型接收 )3.(错误的)后端代码( 单独String类型接收 )总结前言通常在Springboot接收参数时候,都是jso
·
关于接收x-www-form-urlencoded格式数据的后端
前言
通常在Springboot接收参数时候,都是json格式的传输,使用restful风格,而在实际开发中,可能会接收其它格式的参数,比如x-www-form-urlencoded格式的数据
一、x-www-form-urlencoded格式是什么?
就是application/x-www-from-urlencoded,会将表单内的数据转换为键值对,比如,name=zhangsan&age = 18
二、后端如何接收
1.后端代码
1.(使用@RequestBody+ String类型接收 )
代码如下(示例):
@PostMapping("/efly/get")
@ResponseBody
public RespEntity getEFlyReturnPR(@RequestBody String cd) {
System.out.println("接收到的x-www-form-urlencoded");
System.out.println(cd);
return respEntity=new RespEntity(RespCode.CODE_200,cd);
}
2.(使用@RequestBody+ Map类型接收 )
代码如下(示例):
@PostMapping("/efly/get")
@ResponseBody
public RespEntity getEFlyReturnPR(@RequestParam Map<String, String> params) {
System.out.println("接收到的x-www-form-urlencoded");
System.out.println(params);
return respEntity=new RespEntity(RespCode.CODE_200,params);
}
}
3.(使用@RequestBody+ LinkedHashMap类型接收 )
代码如下(示例):
@PostMapping("/efly/get")
@ResponseBody
public RespEntity getEFlyReturnPR(@RequestParam LinkedHashMap<String, String> params) {
System.out.println("接收到的x-www-form-urlencoded");
System.out.println(params);
return respEntity=new RespEntity(RespCode.CODE_200,params);
}
}
postman:
控制台输出:
使用map数据类型:
2.(错误的)后端代码(使用@RequestBody+ 自己封装类型接收 )
postman:
自己封装的实体:
后端代码:
postman报错:
3.(错误的)后端代码( 单独String类型接收 )
总结
当传入参数是x-www-form-urlencoded,接收参数@RequestBody+ String/Map/LinkedHashMap即可接收成功
@PostMapping("/efly/get")
@ResponseBody
public RespEntity getEFlyReturnPR(@RequestBody String cd) {
System.out.println("接收到的x-www-form-urlencoded");
System.out.println(cd);
return respEntity=new RespEntity(RespCode.CODE_200,cd);
}
}
@PostMapping("/efly/get")
@ResponseBody
public RespEntity getEFlyReturnPR(@RequestBody Map<String, String> params) {
System.out.println("接收到的x-www-form-urlencoded");
System.out.println(params);
return respEntity=new RespEntity(RespCode.CODE_200,cd);
}
@PostMapping("/efly/get")
@ResponseBody
public RespEntity getEFlyReturnPR(@RequestParam LinkedHashMap<String, String> params) {
System.out.println("接收到的x-www-form-urlencoded");
System.out.println(params);
return respEntity=new RespEntity(RespCode.CODE_200,params);
}
}
更多推荐
已为社区贡献2条内容
所有评论(0)