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

目录
  • 请求数据
  • Controller几种处理方式
  • SpringMVC application/x-www-form-urlencoded接收方式测试
    • 1.参数前不加注解
    • 2.参数前添加@RequestParam
    • 3.参数前添加@RequestBody
    • 小结一下

请求数据

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

Controller几种处理方式

第一种

    @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权限

第二种

    @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权限

第三种

    @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

第四种

    @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


×


×


×

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 使用SpringBoot跨系统调用接口的方案

    一.简介 项目开发中存在系统之间互调问题,又不想用dubbo,这里提供几种springboot方案: 1.使用Feign进行消费(推荐) 2.使用原始httpClient请求 3.使用RestTemplate方法 二.方案 方案一:使用Feign进行消费(推荐) 1.在maven中添加依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-st

  • Spring MVC请求参数接收的全面总结教程

    前提 在日常使用SpringMVC进行开发的时候,有可能遇到前端各种类型的请求参数,这里做一次相对全面的总结.SpringMVC中处理控制器参数的接口是HandlerMethodArgumentResolver,此接口有众多子类,分别处理不同(注解类型)的参数,下面只列举几个子类: RequestParamMethodArgumentResolver:解析处理使用了@RequestParam注解的参数.MultipartFile类型参数和Simple类型(如long.int)参数. Reques

  • Java Spring Controller 获取请求参数的几种方法详解

    Java Spring Controller 获取请求参数的几种方法  1.直接把表单的参数写在Controller相应的方法的形参中,适用于get方式提交,不适用于post方式提交.若"Content-Type"="application/x-www-form-urlencoded",可用post提交 url形式:http://localhost:8080/SSMDemo/demo/addUser1?username=lixiaoxi&password=1

  • springboot如何接收application/x-www-form-urlencoded类型的请求

    目录 请求数据 Controller几种处理方式 SpringMVC application/x-www-form-urlencoded接收方式测试 1.参数前不加注解 2.参数前添加@RequestParam 3.参数前添加@RequestBody 小结一下 请求数据 id:1 roleName:admin roleDes:拥有admin权限 Controller几种处理方式 第一种 @ApiOperation("查询用户") @PostMapping("/detailBy

  • SpringBoot接口接收json参数解析

    目录 SpringBoot接口接收json参数 前言 前提 一.GET 二.DELETE 三.POST/PUT/PATCH Springboot restFul 参数检验 概述 常用注解 简单应用举例 自定义校验 抛出BindException而非MethodArgumentNotValidException SpringBoot接口接收json参数 前言 通常来讲,HTTP 方法会映射为 CRUD 动作,但这并不是严格的限制,有时候 PUT 也可以用来创建新的资源,POST 也可以用来更新资源

  • 在SpringBoot 中从application.yml中获取自定义常量方式

    要注意的地方是 application.yml 中不能用驼峰式写法(systemParams)要改成system-params 方法一: 引入依赖: <!-- 支持 @ConfigurationProperties 注解 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</a

  • 详解Springboot之接收json字符串的两种方式

    第一种方式.通过关键字段@RequestBody,标明这个对象接收json字符串.还有第二种方式,直接通过request来获取流.在spring中,推荐使用. 代码地址 https://gitee.com/yellowcong/springboot-demo/tree/master/springboot-json 项目结构 其实项目里面没啥类容,就是一个控制器和pom.xml配置 配置fastjson 添加fastjson的依赖到pom.xml中 <dependency> <groupI

  • SpringBoot如何接收数组参数的方法

    1.创建一个表单实体类,将数组封装到实体类中(Post提交) 表单类代码: @Data public class MyForm { private int[] ids; } 控制器代码: @Slf4j @RestController @RequestMapping("/info") public class InfoController { @PostMapping("/test") public String test(@RequestBody MyForm fo

  • springboot @RequestBody 接收字符串实例

    目录 springboot @RequestBody 接收字符串 @RequestBody 接收字符串 向接口传送 application/json 格式的数据 向接口传送 text/plain 格式的数据 替代 @RequestBody 的办法 @RequestBody接收前端传来的json值为空 springboot @RequestBody 接收字符串 springboot 2.1.1.RELEASE @RequestBody 接收字符串 @RequestMapping(method =

  • springboot接口接收数组及多个参数的问题及解决

    目录 springboot接口接收数组及多个参数问题 springboot接收复杂集合参数,集合对象 springboot接口接收数组及多个参数问题 本例为个人经历,必然存在认知局限与不足,欢迎指正以及提供更好方法. 若接口中需要接受数组,那么接口应该如何写呢? 一般而言我们会想到 @PostMapping("/xxxx") public String test(List list){ do sth; } 假设我们写的接口正确,写完接口我希望使用postman来测试一下 params中

  • springboot如何读取application.yml文件

    现在开发主要使用微服务框架springboot,在springboot中经常遇到读取application.yml文件的情形. 一.概述 开发过程中经常遇到要读取application.yml文件中的属性值,本文总结几种读取的方式,供参考. 二.详述 我这里使用的是springboot-2.1.2.RELEASE版本,这里使用的是application.properties的配置方式,和使用application.yml的方式是一样的.下面是application.properties文件的内容

  • 关于Springboot | @RequestBody 接收到的参数对象属性为空的问题

    背景 今天在调试项目的时候遇到一个坑,用Postman发送一个post请求,在Springboot项目使用@RequestBody接收时参数总是报不存在,但是多次检查postman上的请求格式以及项目代码都没有问题 Postman: 请求参数: { "firstName":"fdsaf", "lastName":"dfasdf" } Controller: Entity 通过debug模式可以发现传进到实体的参数都为null

  • 解决SpringBoot加载application.properties配置文件的坑

    SpringBoot加载application.properties配置文件的坑 事情的起因是这样的 一次,本人在现场升级程序,升级完成后进行测试,结果接口调用都报了这么个错误: 大概意思是https接口需要证书校验,这就奇怪了,项目启动加载的是包外的application.properties配置文件,配置文件里没有配置使用https啊.本人马上检查了下包内的application.properties配置文件,发现包内确实配置了https相关的配置项: 明明包外的配置文件优先级高于包内的,为

随机推荐