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