基本用法

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

  • name:header值被绑定到的参数名称(The name of the request header to bind to)。只有此属性时,可以省略name,简写为@RequestHeader("host")
  • required:Boolean类型,默认值为true,即请求头中必须包含此参数。
  • defaultValue:为请求头中的参数提供默认值,如果拿不到值,就将此值赋给控制器的参数。

测试用例

  创建一个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在此祝各位生活愉快!工作顺利!

Spring 注解之@RequestHeader注解:获取请求头参数的更多相关文章

  1. springcloud- FeginClient 调用统一拦截添加请求头 RequestInterceptor ,被调用服务获取请求头

    使用场景: 在springcloud中通过Fegin调用远端RestApi的时候,经常需要传递一些参数信息到被调用服务中去,比如从A服务调用B服务的时候, 需要将当前用户信息传递到B调用的服务中去,我 ...

  2. request获取请求头和请求数据

    package cn.itcast.request; import java.io.IOException; import java.io.InputStream; import java.io.Pr ...

  3. WebAPi获取请求头中对应键值

    /// <summary> /// 依据键获取请求头中值数据 /// </summary> /// <param name="request"> ...

  4. nginx 获取请求头,URL参数

    获取url参数 在 ngx_lua 中访问 Nginx 内置变量 ngx.var.arg_PARAMETER 即可获得GET参数PARAMETER的内容. 在 nginx配置中,通过$arg_PARA ...

  5. postman关联 (含获取请求头的方法)

    在Tests里面输入脚本 var jsonData = JSON.parse(responseBody);postman.setEnvironmentVariable("message&qu ...

  6. request 获取请求头

    /********************************************************servlet页面********************************** ...

  7. 入门servlet:request获取请求头数据

    @WebServlet("/RequestDemo2") public class RequestDemo2 extends HttpServlet { protected voi ...

  8. RequestFacade对象获取请求头时忽略大小写

    也许在Controller层 在RequestFacde文件中getHeader函数逻辑实现如下所示: public String getHeader(String name) { if(this.r ...

  9. 【原创】Selenium获取请求头、响应头

    本文仅供学习交流使用,如侵立删! Selenium获取请求头.响应头 操作环境 win10 . mac Python3.9 selenium.seleniumwire selenium是没有办法直接获 ...

  10. JAVA携带参数(带有请求参数,请求头参数)直接发送POST请求

    <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpcl ...

随机推荐

  1. Windows 提权-UAC 绕过

    本文通过 Google 翻译 UAC-Bypass – Windows Privilege Escalation 这篇文章所产生,本人仅是对机器翻译中部分表达别扭的字词进行了校正及个别注释补充. 导航 ...

  2. new vue 实例发生了什么呢?

    前言 最近全面栽进vue源码解析中,将出一系列的学习笔记 以及个人的一些总结 第一步准备工作 到GitHub上下载vue的源码(巧妇难为无米之炊) 用自己喜欢的编辑器打开源码 vue主要源码資源在sr ...

  3. 【MATLAB习题】工程测试时域、频域分析

    代码: classdef App_uoye < matlab.apps.AppBase % Properties that correspond to app components proper ...

  4. 6. MySQL 索引的数据结构(详细说明)

    6. MySQL 索引的数据结构(详细说明) @ 目录 6. MySQL 索引的数据结构(详细说明) 1. 为什么使用索引 2. 索引及其优缺点 2.1 索引概述 3. InnoDB中索引的推演 3. ...

  5. DB读写分离情况下,如何解决缓存和数据库不一致性问题?

    前言 在读写分离的情况下,缓存和数据库数据不一致怎么解决? 请看这一篇如何更新缓存保证缓存和数据库双写一致性? 如何解决DB数据库的数据不一致问题? 请看这一篇怎么解决DB读写分离,导致数据不一致问题 ...

  6. mysql-8.0.19-winx64.zip 的安装与卸载

    一.安装 1.下载mysql 官网:https://dev.mysql.com/downloads/mysql/,本人用的目前的最新版本8.0.19,版本格式为zip,如下图 2.解压到指定路径,如下 ...

  7. K8S组件详解

    K8S的控制平面.和工作节点是集群正常运行的核心,通过这两部分的协同工作,K8S才能够实现高效的容器编排.管理.和自动化运维. K8S Kubernetes(简称K8s),是一个开源的容器编排平台,用 ...

  8. 【Python】基础操作

    指定解释器的运行环境 有时候我们会遇见报错 SyntaxError: Non-ASCII character '\xe4' in file E:/PycharmProjects/LEDdisplay2 ...

  9. springmvc实现转发和重定向

    一. @RequestMapping("/testVoid") public String testVoid(HttpServletRequest request){ //转发方式 ...

  10. springAPI对事物支持之XML式配置

    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerData ...