其他分享
首页 > 其他分享> > Spring 注解之@RequestHeader注解:获取请求头参数

Spring 注解之@RequestHeader注解:获取请求头参数

作者:互联网

基本用法

  Spring MVC提供了 @RequestHeader注解,其作用是将请求头中的参数值映射到控制器的参数中。常用属性如下:

测试用例

  创建一个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 http://localhost:8087/wiener/hello/getHeader.do
Content-Type: application/json
my-header1: givenHeader

{}

###

### 获取请求头中的参数,header书写正确
POST http://localhost:8087/wiener/hello/getHeader.do
Content-Type: application/json
my-header: givenHeader

{}

###

  依次执行如上两个请求,得到的执行结果如下:

host---localhost:8087
accept---3
host---localhost:8087
accept---givenHeader

  从执行结果得知,header中的参数可以写错,而且写错时,打印的结果是默认值3。

小结

  以上就是这篇文章的全部内容了,希望本文对道友的学习或者工作能带来一定的帮助,如有疑问请留言交流。Wiener在此祝各位生活愉快!工作顺利!

标签:RequestHeader,Spring,---,header,host,头中,参数,注解
来源: https://www.cnblogs.com/east7/p/15390392.html