当前位置:   article > 正文

SpringBoot @RequestHeader注解接收请求头_springboot requestheader

springboot requestheader

以下所有用法案例均来源于下面博文整理,详解请参考该博文
25.SpringMVC系列第25篇:@RequestHeader详解


前端

$(function() {
   fetch('项目路径' + '/requestHeaderTest/init4', {
       method: 'GET',
       // 请求头
       headers: {
           name: "fengYeHong",
           age: 18,
           // 一个请求头包含多个值
           addressList: ["address1", "address2"]
       }
   })
});
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

一. 获取指定的请求头

import org.springframework.web.bind.annotation.RequestHeader;

@Controller
@RequestMapping("/requestHeaderTest")
public class RequestHeaderTest {

    @GetMapping("/init1")
    public void init1(@RequestHeader(value = "name", required = false, defaultValue = "ready") String name,
                      @RequestHeader(value = "age") int age,
                      // 默认为true,如果在前端可能不指定的话,需要手动改为非必须请求头,否则报错
                      @RequestHeader(value = "sex", required = false) String sex,
                      // 一个请求头中有多个值,使用List来接收
                      @RequestHeader(value = "addressList") List<String> addressList) {

        System.out.println(name);
        System.out.println(age);
        System.out.println(sex);
        System.out.println(addressList);
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

二. 使用Map<String, String>接收所有请求头

import org.springframework.web.bind.annotation.RequestHeader;

@Controller
@RequestMapping("/requestHeaderTest")
public class RequestHeaderTest {

    @GetMapping("/init2")
    public void init2(@RequestHeader Map<String, String> headerMap) {

        // 使用Map接收所有的请求头
        System.out.println(headerMap);

        // js中使用header名为addressList,使用map接收后需要使用addresslist
        System.out.println(headerMap.get("addresslist"));  // address1,address2
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

三. 使用MultiValueMap接收所有请求头

import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.util.MultiValueMap;

@Controller
@RequestMapping("/requestHeaderTest")
public class RequestHeaderTest {

    @GetMapping("/init3")
    public void init3(@RequestHeader MultiValueMap multiValueMap) {

        // 使用MultiValueMap来接收所有的请求头
        System.out.println(multiValueMap);
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

四. 使用HttpHeaders接收所有请求头

在这里插入图片描述
在这里插入图片描述

import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.http.HttpHeaders;

@Controller
@RequestMapping("/requestHeaderTest")
public class RequestHeaderTest {

    @GetMapping("/init4")
    public void init4(@RequestHeader HttpHeaders httpHeaders) {

        // 使用HttpHeaders接收所有的请求头
        Map<String,List<String>> result = new LinkedHashMap<>(httpHeaders);
        System.out.println(result);
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Li_阴宅/article/detail/924305
推荐阅读
相关标签
  

闽ICP备14008679号