改造中每个api的拦截器2

时间:2016-01-11 17:21:49

标签: android retrofit okhttp retrofit2

我有四种不同的api,每种都有自己的标头。 我尝试使用拦截器机制来填充标头,而不是给每个调用相同的标头但是因为OkHttp拦截器为每个请求运行,我不能为每个api创建一个拦截器。

我在Retrofit2中没有找到任何其他机制可以避免为每个请求编写相同的标题。

什么是给一堆调用相同标题的好方法?

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。我需要在基于API的响应中添加缓存标头。

为了解决这个问题,我使用了一个拦截器,它可以评估响应的URL,并根据它添加/删除缓存头。

对于你的问题,拦截器将是这样的,

public class HeaderInterceptor implements Interceptor {

    @Override
    public Response intercept(Chain chain) throws IOException {
        Request request = chain.request();
        HttpUrl url = request.url();

        // Add headers depending upon the url
        // Proceed the request
    }
}

将此拦截器添加到您的OkHttp客户端,它会将特定标头添加到一组调用中。

希望它有所帮助。

相关问题