Spring注解之@RequestHeader注解:获取请求头参数
基本⽤法
Spring MVC提供了 @RequestHeader注解,其作⽤是将请求头中的参数值映射到控制器的参数中。常⽤属性如下:name:header值被绑定到的参数名称(The name of the request header to bind to)。只有此属性时,可以省略name,简写
为@RequestHeader("host")。
required:boolean类型,默认为true,即请求头中必须包含此参数。
defaultParameter:为请求头中的参数提供默认值,如果拿不到之,就将此值赋给控制器的参数。
测试⽤例
创建⼀个controller,读取请求头中的两个参数:
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("hello")
public class HelloController {
@PostMapping("/getHeader.do")
public String getHeader(@RequestHeader("host") String host,
@RequestHeader(name = "my-header", required = false,
defaultValue = "3") String myHeader){
System.out.println("host---"+host);
System.out.println("accept---"+myHeader);
return "success:" + myHeader;
}
}
上⾯的函数getHeader,把request header中的参数 host的值绑定到参数host上了, my-header 的值绑定到参数myHeader上。在IDEA 中创建⼀个基于.http⽂件的测试⽤例:
### 获取请求头中的参数,header随机故意写错
POST localhost:8087/wiener/hello/getHeader.do
Content-Type: application/json
my-header1: givenHeader
{}
###
### 获取请求头中的参数,header书写正确
POST localhost:8087/wiener/hello/getHeader.do
Content-Type: application/json
my-header: givenHeader
{}
###
依次执⾏如上两个请求,得到的执⾏结果如下:
host---localhost:8087
spring framework网络系统参数accept---3
host---localhost:8087
accept---givenHeader
从执⾏结果得知,header中的参数可以写错,⽽且写错时,打印的结果是默认值3。
⼩结
以上就是这篇⽂章的全部内容了,希望本⽂对道友的学习或者⼯作能带来⼀定的帮助,如有疑问请留⾔交流。Wiener在此祝各位⽣活愉快!⼯作顺利!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论