Android OkHttp请求为不同的X身份验证令牌返回缓存结果
我正在开发一个Android应用程序,在那里我正在使用改造与RESTAPI进行通信。 此API提供了一个登录,以获取X身份验证令牌。 我有一个拦截器为每个请求设置令牌,如下所示:Android OkHttp请求为不同的X身份验证令牌返回缓存结果,android,caching,retrofit,okhttp,okhttp3,Android,Caching,Retrofit,Okhttp,Okhttp3,我正在开发一个Android应用程序,在那里我正在使用改造与RESTAPI进行通信。 此API提供了一个登录,以获取X身份验证令牌。 我有一个拦截器为每个请求设置令牌,如下所示: @Override public void intercept(RequestFacade request) { request.addHeader("X-Auth-SOFTTOKEN", softToken); request.addHeader("X-Auth-HARDTOK
@Override
public void intercept(RequestFacade request) {
request.addHeader("X-Auth-SOFTTOKEN", softToken);
request.addHeader("X-Auth-HARDTOKEN", hardToken);
request.addHeader("X-Auth-USER", username);
}
我可以观察到一种奇怪的行为,在那里我得到了老用户的缓存响应,尽管X Auth令牌不同,我应该得到新登录用户的响应
如果我将这段代码添加到我的RESTAPI接口方法中,它就会工作
@Headers("Cache-Control: no-cache")
我找不到任何提示,如果这是预期的行为与否。我认为只有在请求完全相同的情况下才应该触发缓存。看看这个答案:从那里也可以看到http RFC- 简言之,当服务器使用“Vary”标头指示时,缓存必须考虑标头。服务器的另一种方法是使用缓存控制头指令 在您的情况下,服务器似乎返回了错误的响应。如果可以,请修复该问题;如果不能,则无法使用http缓存