Retrofit2 + OkHttp3下统一设置Http请求的Headers

在构建使用Retrofit2和OkHttp3的网络层时,为多个接口设置Http请求Headers成为了一个挑战。由于版本更新,一些旧方法不再适用,导致手动配置Header变得困难。通过查阅官方文档,可以利用OkHttpClient的Interceptor来实现这一功能,避免对不可编辑的interceptors()列表直接操作,从而避免抛出UnsupportedOperationException。Interceptor可以方便地对请求和响应的Headers进行定制。
摘要由CSDN通过智能技术生成

近几天尝试使用Retrofit和OkHttp构建网络层,从官网配置了依赖链接后,惊奇的发现OkHttp3,Retrofit2,都与以前的版本不兼容,不仅包名不一样(OkHttp3.*,以前的版本是com.squareup.okhttp.*)而且很多方法也被删掉了,目前只有Retrofit2在网上有少许资料,OkHttp3只能参考官方文档了。

在构建网络层时会遇到一个问题就是要手动配置Http请求的Headers,写入缓存Cookie,自定义的User-Agent等参数,但是对于有几十个接口的网络层,我才不想用注解配置Headers,目前网上很多文章的方法真对这两个版本都不是很适用,有的给出的方法已经被删除,有的方法会报出异常 :(

在翻阅官方API文档整理后的方法如下:

import okhttp3.Interceptor;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import retrofit2.Retrofit;

public class RetrofitAPIManager {

    public static final String SERVER_URL = "url";

    public static ClientAPI provideClientApi() {
        Retrofit retrofit = new Retrofit.Builder()
                .baseUrl(SERVER_URL)
                .client(genericClient())
                .build();
        return retro
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值