上一篇weblfux主要介绍了path参数的解析与映射关系,在我们进入url参数/post表单之前,先看一下另外的一种参数–请求头中的参数如何处理
I. 项目环境
本项目借助SpringBoot 2.2.1.RELEASE + maven 3.5.3 + IDEA进行开发
1. 依赖
使用WebFlux,最主要的引入依赖如下(省略掉了SpringBoot的相关依赖,如对于如何创建SpringBoot项目不太清楚的小伙伴,可以关注一下我之前的博文)
1 | <dependencies> |
II. 请求头参数解析
在实际的业务开发中,有几个请求头出现的频率特别高,如常用于反爬的User-Agent,鉴定强求来源的referer,跨域相关的Access-Control-Allow-,cookie、session自定义的请求头等
1. 请求头限制
在RequestMapping或GetMapping中指定请求头参数时,表示只有请求中包含这个请求头才会匹配过去
1 | /** |
实例如下:
1 | ➜ ~ curl 'http://127.0.0.1:8080/header/filter/yihhui' -H 'myheader: myvalue' |
2. 请求头参数解析
WebFlux依然是可以通过注解@RequestHeader来获取对应的请求头
从使用姿势上来看,webflux与webmvc并没有什么区别
1 | /** |
测试case如下
1 | ➜ ~ curl 'http://127.0.0.1:8080/header/get' -H 'myheader: myvalue' -H 'user-agent: xxxxxxx' |
3. cookie获取
利用cookie来标识用户身份可以说是非常普遍的场景了,我们通过专用的CookieValue来获取指定的cookies值
1 | /** |
上面的case中,标识只需要获取tid这个cookies值,其他的不care
1 | ➜ ~ curl 'http://127.0.0.1:8080/header/cookie' --cookie 'tid=12343123;tt=abc123def' |
II. 其他
0. 项目
- 工程:https://github.com/liuyueyi/spring-boot-demo
- 源码: https://github.com/liuyueyi/spring-boot-demo/tree/master/spring-boot/223-webflux-params
系列博文
1. 一灰灰Blog
尽信书则不如,以上内容,纯属一家之言,因个人能力有限,难免有疏漏和错误之处,如发现bug或者有更好的建议,欢迎批评指正,不吝感激
下面一灰灰的个人博客,记录所有学习和工作中的博文,欢迎大家前去逛逛
- 一灰灰Blog个人博客 https://blog.hhui.top
- 一灰灰Blog-Spring专题博客 http://spring.hhui.top
