SpringBoot接口参数接收各种情况
@RequestParam
/**
* GET请求接收query参数,接收的参数会拼接在Url的?后面
* @RequestParam 参数
* value: 可以给接收对应的key重命名
* required: 是否必须参数(为false时参数可以不传,为true时不传则报错)
*/
@GetMapping("apiGet_1")
public void api_get_1(@RequestParam String name,
@RequestParam(value = "tel",required = false) String phone){
log.info("姓名:{},手机号:{}",name,phone);
}
接口示例:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xwZpcixW-1673114804901)(C:\Users\ling\AppData\Roaming\Typora\typora-user-images\image-20230107225953926.png)]
无注解
GET请求
/**
* GET请求接收query参数
* 无注解时参数与 @RequestParam(required = false)效果一样,可以不传
*/
@RequestMapping("apiGet_2")
public void api_get_2(String name, String phone,Long[] idList) {
log.info("姓名:{},手机号:{}", name, phone);
}
POST请求
/**
* Post请求接收参数-多形参接收
* Content-Type类型:multipart/form-data
*/
@RequestMapping("apiPost_1")
public void api_get_1(String name, String phone, Long[] idList) {
log.info("姓名:{},手机号:{},IDList:{}", name, phone, idList.toString());
}
/**
* POST请求接收参数-对象接收
* Content-Type类型:multipart/form-data
*/
@RequestMapping("apiPost_2")
public void api_post_2(User user) {
if (user == null) {
return;
}
Long[] idList = user.getIdList();
String idListStr = null;
if (idList != null) {
idListStr = idList.toString();
}
log.info("姓名:{},手机号:{},IDList:{}", user.getName(), user.getPhone(), idListStr);
}
@PathVariable
/**
* 请求接收Url中参数,RESTful格式
* 这种接收参数方式所有请求方法都可以使用
* 除了接收URl中的参数外其他方式可以混合接收,与以上一样
*/
@RequestMapping("RESTful_api/{name}")
public void api_RESTful(@PathVariable(value = "name") String name, String phone) {
log.info("姓名:{},手机号:{}", name, phone);
}
@RequestBody
/**
* 接收JSON数据
* JOSN数据只可以用key-value对象接收
* 因为json就是一个key-value对应的格式
*/
@RequestMapping("jaonApi_1")
public void jsonApi_1(@RequestBody User user) {
log.info("姓名:{}", user.getName());
}
@RequestHeader与@CookieValue
/**
* 接收cookie参数
*/
@RequestMapping("cookieApi")
public void cookieApi(@CookieValue(value = "token") String cookieParam) {
log.info("cookieParam:{}", cookieParam);
}
/**
* 接收请求头header参数
*/
@RequestMapping("headerParamsApi")
public void headerParamsApi(@RequestHeader(value = "AccessToken") String accessToken) {
log.info("accessToken:{}", accessToken);
}