1.Get请求
Get请求传递参数一般是
1.通过@PathVariable来映射 URL 绑定的占位符
后端
@GetMapping("test/{id}")public R test(@PathVariable Integer id){System.out.println(id);return R.success(id);}
前端
export function test(id:any){return request({url:"/test/"+id,method:"get",})}
请求格式
2 通过params传递参数
关于data 和params两种传递参数的方法 data传递的是再请求体里面传递参数,而params是在请求头传递参数 post 就既可以用请求头也可以用请求体
前端
export function test(id:any){return request({url:"/test",method:"get",params:{id:id}})
后端
@GetMapping("test")public R test(String id){System.out.println(id);return R.success(id);}
请求格式
@Requestparam注解是代表这个参数必须要传
也可以定义一个实体类来接收
@Data
public class Test {private String name;private String age;private String sex;
}
后端
@GetMapping("test")public R test( Test test1){
// System.out.println(test);System.out.println(test1);return R.success(test1);}
前端
export function test(id:any){return request({url:"/test",method:"get",params:{name:"张三",age:"18",sex:"男",test:"test"}})
可以校验实体类
@Data
public class Test {@NotBlank(message = "用户名不能为空")private String name;@NotBlank(message = "年龄不能为空")private String age;@NotBlank(message = "性别不能为空")private String sex;
}
@GetMapping("test")public R test(@Validated Test test1){
// System.out.println(test);System.out.println(test1);return R.success(test1);}
Get请求是通过Url方式传递的 ,所以Get请求不能用@RequestBody来传递参数
2.post请求
@RequestBody是找寻请求体里的数据的,我测试下来 @RequestBody可以接受实体类,可以接收list集合 但接收字符串有一点点问题
2.1接收实体类
前端
export function test(id:any){return request({url:"/test",method:"post",data:{name:'张三',age:'18',sex:'男'}})
后端
@PostMapping("test")public R test(@RequestBody Test test){System.out.println(test);return R.success(test);}
接收list集合
前端
export function test(id:any){return request({url:"/test",method:"post",data:[1,2,2,2,,32,13,123]})
后端
@PostMapping("test")public R test(@RequestBody List<Integer> ids){System.out.println(ids);return R.success(ids);}
接收字符串有一点问题好像。。。不知道是不是我格式有问题
前端
export function test(id:any){return request({url:"/test",method:"post",data:'test'})
后端
@PostMapping("test")public R test(@RequestBody String test){System.out.println(test);return R.success(test);}
打印结果
多出一个等于号 ,我个人推测把字符串传递给表单的时候就是以json的格式传输的,requestBody接收自然以json格式解析,所有多出一个=