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注解给某一个接口单独添加一个或多个请求头。


目录
相关文章
|
缓存
Retrofit配置及各情况处理
Retrofit配置及各情况处理
259 0
|
Java
使用OkHttp3框架获取服务器数据
使用OkHttp3框架获取服务器数据
191 0
|
消息中间件 JavaScript 小程序
OkHttp完美封装,一行搞完外部请求
OkHttp完美封装,一行搞完外部请求
|
数据采集 负载均衡 监控
三种跨域解决方案:HttpClient、注解、网关
三种跨域解决方案:HttpClient、注解、网关
|
缓存 JSON 数据格式
OkHttp3源码详解(一) Request类
阿里P7移动互联网架构师进阶视频(每日更新中)免费学习请点击:https://space.bilibili.com/474380680每一次网络请求都是一个Request,Request是对url,method,header,body的封装,也是对Http协议中请求行,请求头,实体内容的封装 p.
|
JSON 数据格式
Okhttp post请求数据和使用中的一些问题
Okhttp post请求数据和使用中的一些问题
|
设计模式 Java API
【OkHttp】OkHttp 源码分析 ( 网络框架封装 | OkHttp 4 迁移 | OkHttp 建造者模式 )
【OkHttp】OkHttp 源码分析 ( 网络框架封装 | OkHttp 4 迁移 | OkHttp 建造者模式 )
364 0
【OkHttp】OkHttp 源码分析 ( 网络框架封装 | OkHttp 4 迁移 | OkHttp 建造者模式 )
|
存储
Retrofit+OkHttp实现Cookie持久化,RxJava方式
Retrofit+OkHttp实现Cookie持久化,RxJava方式
326 0
OkHttp3源码详解(三) 拦截器
阿里P7移动互联网架构师进阶视频(每日更新中)免费学习请点击:https://space.bilibili.com/4743806801.构造Demo 首先构造一个简单的异步网络访问Demo: 1. OkHttpClient client = new OkHttpClient(); 2.
Okhttp3源码解析(1)-OkHttpClient分析
前言 上篇文章我们讲了Okhttp的基本用法,今天根据上节讲到请求流程来分析源码,那么第一步就是实例化OkHttpClient对象,所以我们今天主要分析下OkHttpClient源码! 初始化-构造方式 创建 OkHttpClient实例的两种方式 1.
2888 0