Retrofit2+Okhttp3添加统一请求头

简介: Retrofit2+Okhttp3添加统一请求头

业务场景

我们通常需要cookie持久化来保持回话统一,也因为某些业务需求,需要每个接口都传一些参数,比如token、userId等。


原理解读

原理呢,比较简单的,把参数以请求头的方式添加到拦截器中,然后在配置给okhttp

代码实现

  • 创建拦截器,并添加参数
public class HeaderInterceptor implements Interceptor {
    @NonNull
    @Override
    public Response intercept(Chain chain) throws IOException {
        Request original = chain.request();
        Request.Builder requestBuilder = original.newBuilder()
                .addHeader("version", "1.0.0")
                .addHeader("自定义key", "自定义value");
        Request request = requestBuilder.build();
        return chain.proceed(request);
    }
}

配置拦截器给OkHttp

   

OkHttpClient okHttpClient = new OkHttpClient.Builder()
                ...
                .addInterceptor(new HeaderInterceptor())
                ...
                .connectTimeout(20, TimeUnit.SECONDS)
                .build();

也可以用@Header@Headers注解给某一个接口单独添加一个或多个请求头。


目录
相关文章
|
安全 Java 应用服务中间件
使用OkHttp工具时Authorization请求头丢失问题
记一次联调三方接口时"Authorization"请求头丢失问题, 使用工具OkHttp
使用OkHttp工具时Authorization请求头丢失问题
|
缓存
Retrofit配置及各情况处理
Retrofit配置及各情况处理
209 0
|
Java
使用OkHttp3框架获取服务器数据
使用OkHttp3框架获取服务器数据
169 0
|
数据采集 负载均衡 监控
三种跨域解决方案:HttpClient、注解、网关
三种跨域解决方案:HttpClient、注解、网关
|
存储 JSON 安全
商圈库-Http-Okhttp的使用和封装 | 学习笔记
快速学习商圈库-Http-Okhttp的使用和封装。
商圈库-Http-Okhttp的使用和封装 | 学习笔记
|
JSON 数据格式
Okhttp post请求数据和使用中的一些问题
Okhttp post请求数据和使用中的一些问题
|
缓存 JSON 数据格式
OkHttp3源码详解(一) Request类
阿里P7移动互联网架构师进阶视频(每日更新中)免费学习请点击:https://space.bilibili.com/474380680每一次网络请求都是一个Request,Request是对url,method,header,body的封装,也是对Http协议中请求行,请求头,实体内容的封装 p.
|
设计模式 Java API
【OkHttp】OkHttp 源码分析 ( 网络框架封装 | OkHttp 4 迁移 | OkHttp 建造者模式 )
【OkHttp】OkHttp 源码分析 ( 网络框架封装 | OkHttp 4 迁移 | OkHttp 建造者模式 )
347 0
【OkHttp】OkHttp 源码分析 ( 网络框架封装 | OkHttp 4 迁移 | OkHttp 建造者模式 )
|
缓存
【OkHttp】OkHttp 简介 ( OkHttp 框架特性 | Http 版本简介 )
【OkHttp】OkHttp 简介 ( OkHttp 框架特性 | Http 版本简介 )
390 0
【OkHttp】OkHttp 简介 ( OkHttp 框架特性 | Http 版本简介 )
|
存储
Retrofit+OkHttp实现Cookie持久化,RxJava方式
Retrofit+OkHttp实现Cookie持久化,RxJava方式
308 0