Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android OkHttp请求为不同的X身份验证令牌返回缓存结果_Android_Caching_Retrofit_Okhttp_Okhttp3 - Fatal编程技术网

Android OkHttp请求为不同的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

我正在开发一个Android应用程序,在那里我正在使用改造与RESTAPI进行通信。 此API提供了一个登录,以获取X身份验证令牌。 我有一个拦截器为每个请求设置令牌,如下所示:

@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缓存