【问题标题】:How check if data is already in cache OkHttp如何检查数据是否已经在缓存 OkHttp 中
【发布时间】:2019-02-05 23:39:05
【问题描述】:

我按照this 教程使用 ETags 实现缓存,但是带有查询的请求如何首先检查缓存?例如,假设您有一个端点 GET /Todos 可以获取 Todo 注释列表,然后您有一个 GET /Todos/{id} 可以获取特定 id 的 todo。如果我先获取所有待办事项,然后尝试为特定 id 获取一个,有没有办法检查该项目是否已经在缓存中(因为当你获取所有项目时它会被缓存)?

【问题讨论】:

    标签: android caching okhttp


    【解决方案1】:

    在请求中使用CacheControl.FORCE_CACHE。如果您收到状态码为 503 的响应,则说明它不在缓存中。

    【讨论】:

    • 那行不通。 GET /Todos/{id} 在这种情况下会返回 503,因为该特定请求尚未发出,因此它没有被缓存,即使通过不同请求 (GET /Todos) 的相同数据已被缓存
    猜你喜欢
    • 2016-03-29
    • 1970-01-01
    • 2014-04-10
    • 2020-02-04
    • 2015-07-12
    • 1970-01-01
    • 2021-06-13
    • 2020-07-15
    相关资源
    最近更新 更多