【转载】springboot如何接收application/x-www-form-urlencoded类型的请求

本文转载自:https://www.jb51.net/article/227052.htm#_label2

这篇文章主要介绍了springboot如何接收application/x-www-form-urlencoded类型的请求,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

目录

请求数据

  • id:1
  • roleName:admin
  • roleDes:拥有admin权限

Controller几种处理方式

第一种

1

2

3

4

5

   @ApiOperation("查询用户")

   @PostMapping("/detailByParam")

   public void detailByParam(@RequestParam (value = "id") Integer id,@RequestParam(value = "roleName") String roleName,@RequestParam(value = "roleDes") String roleDes) {

    System.out.println(">>>id="+id+",roleName="+roleName+",roleDes="+roleDes);

}

打印信息:

>>>id=1,roleName=admin,roleDes=拥有admin权限

第二种

1

2

3

4

5

@ApiOperation("查询用户")

@PostMapping("/detailByParam")

public void detailByParam(@RequestParam Map<String, String> params) {

    System.out.println(">>>id="+params.get("id")+",roleName="+params.get("roleName")+",roleDes="+params.get("roleDes"));

}

打印信息:

>>>id=1,roleName=admin,roleDes=拥有admin权限

第三种

1

2

3

4

5

@ApiOperation("查询用户")

@PostMapping("/detailByParam")

public void detailByParam(@RequestBody String params) {

    System.out.println(">>>"+params);

}

打印信息:

>>>id=1&roleName=admin&roleDes=%E6%8B%A5%E6%9C%89admin%E6%9D%83%E9%99%90

第四种

1

2

3

4

5

@ApiOperation("查询用户")

@PostMapping("/detailByParam")

public void detailByParam(@RequestBody GetRoleParam getRoleParam) {

    System.out.println(">>>"+getRoleParam);

}

返回错误信息:

“Content type ‘application/x-www-form-urlencoded;charset=UTF-8' not supported”

SpringMVC application/x-www-form-urlencoded接收方式测试

前提:为了便于理解

  • 类全部使用@Controller,不使用RestController
  • 方法使用@RequestMapping
  • postman都是如下请求

1.参数前不加注解

1.1 request

成功!

1.2 map

失败!

1.3 pojo

成功!

2.参数前添加@RequestParam

2.1 request

失败!

2.2 map

成功!

2.3 poji

失败!

3.参数前添加@RequestBody

3.1 request

失败!

3.2 map

失败!

3.3 pojo

失败!

小结一下

Request

Map

Pojo

不加注解

×

@RequestParam

×

×

@RequestBody

×

×

×

  • 7
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值