iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >SpringBoot2中使用@RequestHeader获取请求头的方法
  • 159
分享到

SpringBoot2中使用@RequestHeader获取请求头的方法

2024-04-02 19:04:59 159人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录一、使用@RequestHeader获取请求头(一)获取某一个请求头(二)获取数值型请求头(三)一次性获取所有请求头二、@RequestHeader注解详解(一)name、val

springMVC/SpringBoot中提供了@RequestHeader注解用来获取请求头。

一、使用@RequestHeader获取请求头

(一)获取某一个请求头

例如,获取accept-language请求头:


@GetMapping("/getLanguage")
public Result test(@RequestHeader("accept-language") String language) {
    // ......
    
    return new Result(true, 600, language);
}

使用postman,没有设置accept-language请求头时,响应:


{
    "timestamp": "2019-12-3T20:43:58.971+0000",
    "status": 400,
    "error": "Bad Request",
    "message": "Missing request header 'accept-language' for method parameter of type String",
    "path": "/getLanguage"
}

添加了accept-language请求头后,响应:


{
    "flag": true,
    "code": 600,
    "message": "en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7"
} 

(二)获取数值型请求头


@GetMapping("/num")
public Result getNumber(@RequestHeader("my-number") int myNumber) {
    return new Result(true, httpstatus.OK.value(), String.valueOf(myNumber));
}

使用postman设置my-number请求头值为1,响应:


{
    "flag": true,
    "code": 200,
    "message": "1"
}

(三)一次性获取所有请求头

1、使用Map接收所有请求头


@GetMapping("/getHeaders")
public Result listAllHeaders(@RequestHeader Map<String, String> headers) {
    headers.forEach((key, value) -> {
        // 日志中输出所有请求头
        logger.info(String.fORMat("Header '%s' = %s", key, value));
    });
    return new Result(true, HttpStatus.OK.value(), "");
}

使用postman请求该地址,控制台打印:

2019-12-03 21:10:35,993 INFO  [http-NIO-10000-exec-9] com.chushiyan.test.controller.HttpHeaderController: Header 'user-agent' = PostmanRuntime/7.20.1
2019-12-03 21:10:35,994 INFO  [http-nio-10000-exec-9] com.chushiyan.test.controller.HttpHeaderController: Header 'accept' = * @Target(ElementType.PARAMETER) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface RequestHeader { @AliasFor("name") String value() default ""; @AliasFor("value") String name() default ""; boolean required() default true; String defaultValue() default ValueConstants.DEFAULT_NONE; }

(一)name、value属性


public Result test(@RequestHeader(name="accept-language") String language)
public Result test(@RequestHeader(value="accept-language") String language)

上面这两行代码效果相同。当然都可以省略为:(因为value是可以省略写的)


public Result test(@RequestHeader("accept-language") String language)

因为从源码中,可以看出name/value互为别名:


   @AliasFor("name")
   String value() default "";

   @AliasFor("value")
   String name() default "";

@AliasFor注解:

  • @AliasFor在同一个注解中成对使用,表示两个属性互为别名。比如上面的,value和name就是互为别名。
  • @AliasFor标签有一些使用限制,比如要求互为别名的属性的属性值类型、默认值都是相同的。
  • 互为别名的注解必须成对出现,比如value属性添加了@AliasFor(“name”),那么name属性就必须添加@AliasFor(“value”)。

(二)required属性


@GetMapping("/getHeader3")
public Result evaluateNonRequiredHeader(
        @RequestHeader(value = "chushiyan", required = false) String header) {

    return new Result(true,HttpStatus.OK.value(),"");
}

如果没有添加required = false,当请求头中没有这个chushiyan请求头时就会报错。

(三)defaultValue属性

可以使用defaultValue属性指定默认值


@GetMapping("/getHeader3")
public Result evaluateNonRequiredHeader(
        @RequestHeader(value = "chushiyan", defaultValue = "hello") String header) {

    return new Result(true,HttpStatus.OK.value(),"");
}

到此这篇关于springBoot2中使用@RequestHeader获取请求头的方法的文章就介绍到这了,更多相关SpringBoot2 @RequestHeader获取请求头内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: SpringBoot2中使用@RequestHeader获取请求头的方法

本文链接: https://www.lsjlt.com/news/155873.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SpringBoot2中使用@RequestHeader获取请求头的方法
    目录一、使用@RequestHeader获取请求头(一)获取某一个请求头(二)获取数值型请求头(三)一次性获取所有请求头二、@RequestHeader注解详解(一)name、val...
    99+
    2024-04-02
  • php获取curl头_php中CURL请求头和响应头获取方法
    在有的时候,我们需要通过获取接口相应的请求头信息,可以在curl_exec函数执行前,添加代码 curl_setopt($ch,CURLINFO_HEADER_OUT,true); 然后在curl_exec函数执行后,通过 curl_g...
    99+
    2023-09-11
    php 开发语言 服务器 CURL响应头信息获取 Powered by 金山文档
  • JAVA获取HTTP请求头的方法示例
    本文实例讲述了JAVA获取HTTP请求头的方法。分享给大家供大家参考,具体如下:在利用Java网络编程时,利用Java获取HTTP Request 和 Response头字段;可以利用Java语言根据需要添加自定义的HTTP头字段,而不必拘...
    99+
    2023-05-31
    java http请求头 ava
  • 获取客户端HTTP请求头的方法有哪些
    本篇文章为大家展示了获取客户端HTTP请求头的方法有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。获取客户端发来的HTTP请求头中的内容可以使用如下方法:getDateHeader()getHe...
    99+
    2023-05-31
    http
  • java获取请求ip的方法
      在上篇文章中我们介绍了 java获取请求 ip的方法,那么这篇文章我们就来详细讲解下获取请求 ip的方法。获取请求 ip的方法是基于 HTTP协议的,其原理如下: 1、用 web应用程序,将 web服务器端与客户端通过 HTTP协议通...
    99+
    2023-09-06
    java tcp/ip servlet
  • java中springMVC获取请求参数的方法
    目录原生方式获取请求参数控制器方法形参获取请求参数@RequestParam注解@RequestHeader注解@CookieValue注解通过POJO获取请求参数原生方式获取请求参...
    99+
    2023-05-18
    springMVC 请求参数 springMVC 请求
  • 探讨php获取请求的方法
    PHP是一种功能强大的服务器端编程语言,广泛应用于Web开发领域。当我们在PHP代码中接收请求时,我们通常需要知道当前的请求方法是什么,以便我们能够对其进行适当的处理。本篇文章将针对PHP如何获取请求方法进行探讨。一、GET和POST请求方...
    99+
    2023-05-14
    php 请求处理
  • Vue3在Setup中使用axios请求获取的值方式
    目录Setup中使用axios请求获取的值Vue3+Setup使用知识点Setup中使用axios请求获取的值 上次我们使用axios给项目搞上了网络请求,从此项目数据不再是静态的。...
    99+
    2024-04-02
  • php获取请求的方法有哪些
    这篇“php获取请求的方法有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“php获取请求的方法有哪些”文章吧。一、GET...
    99+
    2023-07-05
  • 利用js或ajax或php获取请求头及里面东西的方法
    js获取请求头其中信息,通过XMLHttpRequest var req = new XMLHttpRequest();req.open('GET', document.location, false);req.send(null);v...
    99+
    2023-09-10
    前端 开发语言 php javascript
  • SpringMVC中请求参数的获取方式
    目录SpringMVC请求参数获取方式一、通过 ServletAPI 获取二、通过控制器方法的形参获取处理多个同名的请求参数三、通过 @RequestParam 注解四、@Reque...
    99+
    2024-04-02
  • python如何获取http请求响应头headers中的数据
    本篇内容介绍了“python如何获取http请求响应头headers中的数据”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!例如我要测试一个创...
    99+
    2023-06-29
  • python获取http请求响应头headers中的数据的示例
    例如我要测试一个创建网络的接口,需要先拿token值,而获取token的接口请求成功后,将token存在了响应头headers,postman调接口如下,现在想要通过python获取...
    99+
    2024-04-02
  • jmeter获取请求内容的方法是什么
    在JMeter中,可以使用以下方法来获取请求内容:1. 使用HTTP信息头管理器(HTTP Header Manager):在测试计...
    99+
    2023-09-15
    jmeter
  • javascript获取请求参数的方法是什么
    这篇文章主要讲解了“javascript获取请求参数的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“javascript获取请求参数的方法是什么”...
    99+
    2024-04-02
  • jmeter获取请求内容的方法有哪些
    JMeter提供了多种方法来获取请求内容。以下是常用的方法:1. 使用HTTP请求默认值:可以在测试计划中设置HTTP请求默认值,然...
    99+
    2023-08-15
    jmeter
  • selenium 获取请求响应信息,包括请求的响应头和响应体
        在我们使用selenium请求网页时,有时不想从浏览器解析后的html标签获取数据,如果能直接获取url返回的json格式数据会更容易解析。就像request和scrapy爬虫返回的响应数据一样。那么,我们用selenium应该怎么...
    99+
    2023-09-01
    selenium python 测试工具
  • 使用springmvc的controller层获取到请求的数据方式
    目录content-type1.application/x-www-form-urlencoded1.1 String 参数值=reqeust.getParameter(“参数名”)...
    99+
    2024-04-02
  • Python获取接口请求耗时的方法详解
    目录项目展示如何获得握手时间如何获得请求时间善用装饰器总结你想知道我们请求一个url的时候,握手和请求资源分别占用多长时间么?今天我们使用python写个小案例来看看吧。 impor...
    99+
    2023-05-16
    Python获取接口请求耗时 Python接口请求耗时 Python接口请求
  • 使用Ajax请求怎么爬取今日头条
    本篇文章给大家分享的是有关使用Ajax请求怎么爬取今日头条,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。代码如下:import requestsimport ...
    99+
    2023-06-08
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作