在网络请求中,根据请求头的参数来做校验属于比较常见的一种case了,很多场景下我们发起的请求都需要额外的去设置请求头,本文将介绍WebClient设置请求头的两种姿势
I. 项目环境
本项目借助SpringBoot 2.2.1.RELEASE
+ maven 3.5.3
+ IDEA
进行开发
1. 依赖
使用WebClient,最主要的引入依赖如下(省略掉了SpringBoot的相关依赖,如对于如何创建SpringBoot项目不太清楚的小伙伴,可以关注一下我之前的博文)
1 | <dependency> |
2. REST接口
基于WebFlux提供一个http接口,返回请求参数与请求头(关于webflux的用法在后续的WebFlux系列篇中给与介绍)
1 | /** |
II. 设置请求头
1. 默认请求头
在第一篇介绍WebClient创建的几种姿势中,WebClient.builder()
方式创建时,可以指定默认的请求头,因此我们可以在创建时指定
1 | // 1. 在创建时,指定默认的请求头 |
通过上面这种方式创建的webclient,所有的请求都会携带User-Agent: SelfDefine Header
这个请求头哦
2. filter方式
除了上面这种姿势之外,WebClient还支持了Filter,对于Filter你可以将它理解为Servlet中的Filter,主要用于在发起请求时,做一些过滤操作,因此我们完全可以写一个塞入自定义请求头的Filter
1 | // 2. 使用filter |
请注意上面添加header
的用法
3. 测试&小结
关于详细的测试代码可以在下面的工程源码中获取,下面给出上面两种姿势的返回结果
1 | basic get with default header return: -->headers: {"accept-encoding":["gzip"],"host":["127.0.0.1:8080"],"accept":["*/*"],"User-Agent":["SelfDefine Header"],"referer":["localhost"]}; -->params:{"name":["一灰灰"],"age":["19"]} |
小结:
本文介绍两种请求头的设置方式
- 通过
WebClient.builder
在创建时,通过defaultHeader
指定默认的请求头 - 借助Filter,主动在
Request
中塞入请求头
III. 其他
0. 项目
系列博文
源码
- 工程:https://github.com/liuyueyi/spring-boot-demo
- 源码:https://github.com/liuyueyi/spring-boot-demo/tree/master/spring-boot/222-web-client
1. 一灰灰Blog
尽信书则不如,以上内容,纯属一家之言,因个人能力有限,难免有疏漏和错误之处,如发现bug或者有更好的建议,欢迎批评指正,不吝感激
下面一灰灰的个人博客,记录所有学习和工作中的博文,欢迎大家前去逛逛
- 一灰灰Blog个人博客 https://blog.hhui.top
- 一灰灰Blog-Spring专题博客 http://spring.hhui.top
Be the first person to leave a comment!