我有四种不同的 api,每一种都有自己的标头。我尝试使用拦截器机制来填充标头,而不是为每个调用提供相同的标头,但是由于 OkHttp 拦截器为每个请求运行,我无法为每个 api 创建一个拦截器。
我在 Retrofit2 中没有找到任何其他机制可以让我避免为每个请求编写相同的标头。
什么是给一堆电话相同的标题的好方法?
我有同样的问题。我需要将缓存标头添加到基于 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 客户端,它会将特定的标头添加到一组调用中。
希望能帮助到你。