【问题标题】:Android OkHttp : Why I get the same responseAndroid OkHttp:为什么我得到相同的响应
【发布时间】:2015-04-10 02:56:48
【问题描述】:

当我使用 OkHttp 从这样的 URL 获取 JSON 时:

Request request = new Request.Builder()
            .url(url).build();

我通常会收到相同的回复(有时我会收到新的回复)。

如果我这样使用:

Request request = new Request.Builder()
            .cacheControl(new CacheControl.Builder().noCache().noStore().build())
            .url(url).build();

我每次都会收到新的回复。

我想知道为什么我用第一种方法得到相同的响应?

【问题讨论】:

    标签: android okhttp


    【解决方案1】:

    HTTP 中的缓存

    HTTP 通常用于分布式信息系统,其中可以通过使用响应缓存来提高性能。 HTTP/1.1 协议包括许多旨在使缓存尽可能好地工作的元素。因为这些元素与协议的其他方面密不可分,而且它们之间相互影响,所以将 HTTP 的基本缓存设计与方法、标头、响应代码等的详细描述分开描述是很有用的。

    如果没有显着提高性能,缓存将毫无用处。 HTTP/1.1 中缓存的目标是在许多情况下消除发送请求的需要,并在许多其他情况下消除发送完整响应的需要。前者减少了许多操作所需的网络往返次数;为此,我们使用“过期”机制。后者降低了网络带宽需求。

    有关这方面的更多信息,请转至Caching in HTTP。此外,有关编码方面的帮助,请查看Class Cache 上的此文档。

    【讨论】:

      猜你喜欢
      • 2016-07-14
      • 2013-01-24
      • 2016-11-22
      • 1970-01-01
      • 2019-06-28
      • 1970-01-01
      • 1970-01-01
      • 2022-11-15
      • 1970-01-01
      相关资源
      最近更新 更多