问题与以下完全相同 我有一个api可以提供一些数据和一个apk,
我用我的设备获得了api响应,并在模拟器上使用相同的apk获得了另一个不同的旧响应!
模拟器响应是最新的更新,而其他不同的响应在更改之前。
该应用程序使用改造而不进行缓存。 那可能是什么问题?
请求只包含一个标头(访问令牌) 响应包含像(ETag,Access-Control-Max-Age)这样的标题,但是由于根本没有缓存,因此改版不应该处理它们。
等待一段时间所有设备都变得最新!
答案 0 :(得分:2)
你确定吗?
该应用程序使用改造而不缓存
基于此https://github.com/square/retrofit/issues/678,我认为改造(OkHttp内部改造)缓存您的查询。
您可以通过两种方式更改此行为:
答案 1 :(得分:1)
或者您可以创建新的OkHttp客户端来进行改造并编写类似的内容:
new OkHttpClient.Builder().cache(null).build();
或
Request.cacheControl(CacheControl.FORCE_NETWORK)
答案 2 :(得分:0)
那可能是什么问题?
如果你没有在客户端上发现问题,你应该在服务器端寻找它。任何类型的缓存(在数据库上,或在HTTP响应级别上)都可以显示此行为。
如果不了解您的设置和测试环境,就无法确定问题所在。你写了
等待一段时间所有设备都是最新的
这是什么意思?如果您的设备是最新的,您如何确定?
在复杂的情况下,如果涉及到后端,您应该在Github上提供一个示例项目,可以重现此行为。