2

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

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

什么是给一堆电话相同的标题的好方法?

4

1 回答 1

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 客户端,它会将特定的标头添加到一组调用中。

希望能帮助到你。

于 2016-05-19T09:47:06.570 回答