【问题标题】:UseProtocolCachePolicy hide 304 status codeUseProtocolCachePolicy 隐藏 304 状态码
【发布时间】:2018-06-23 02:57:24
【问题描述】:

我在 url 请求上设置 cachePolicy。 第一次调用 url (GET) 返回状态码为 200。 第二次调用相同的 url 返回 200。

如果使用休息客户端,我在第一次调用 200 时获得,第二次使用正确的标头 (If-None-Match) 304

在线阅读我了解到 iOS 会使用状态码 200 序列化第一个请求并在第二次调用时检索它。

有一种方法可以在 UrlCache 中获取 304 而不是 200,或者了解数据是否来自缓存而不是来自网络。

【问题讨论】:

标签: swift caching nsurlcache


【解决方案1】:

来自http://jonathanblog2000.blogspot.com/2017/07/ios-uiwebview-nsurlsession-cache.html

如果你想在你的应用中测试和验证缓存是否正常工作,你必须记录设备的 http 流量,因为 NSURLSession 的委托永远不会看到服务器返回的 304 状态码,它会被自动替换为缓存响应中的状态码。

这是一件好事。这意味着您的应用程序可以假装您获得了成功的响应,而不必担心响应是如何获得的或正在发生什么样的优化。您只需以相同的方式处理响应,无论它是否从缓存中提取。

【讨论】:

    猜你喜欢
    • 2022-07-28
    • 2011-08-13
    • 2017-03-27
    • 2018-03-23
    • 2013-09-19
    • 1970-01-01
    • 2011-04-29
    相关资源
    最近更新 更多