gpt4 book ai didi

ios - 在 AFNetworking 中处理 304 响应

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:58:52 28 4
gpt4 key购买 nike

我正在尝试找出处理来 self 的 API 服务器的 304 Not Modified 响应的最佳方法。在每个请求中,我通过覆盖 -requestWithMethod:URLString:parameters:error: 并设置 header 值来在 If-None-Match 中传递一个 etag。

在返回 304 的情况下,我没有收到任何响应正文。在那种情况下,我从我的 Core Data 存储中获取缓存数据,并在 GET: 方法完成处理程序中返回它。

是否有更好的方法在响应序列化程序中返回缓存值,或者我是否缺少其他最佳实践?我应该缓存原始 200 响应的响应数据吗?

欢迎指导。

最佳答案

我认为这在很大程度上取决于您的场景,但您不必自己将数据存储在 Core Data 中。

如果服务器正确响应(看起来确实如此),这应该可以透明地与 NSURLCache 一起工作。

初始请求没有电子标签,服务器返回响应头和正文。 NSURLCache 会注意到响应是可缓存的并将其存储在内部 sqlite 缓存数据库中。

在下一个请求中,它将发送电子标签,服务器以 304 Not Modified 响应,缓存将从缓存数据库中为您构建响应。您的回调将收到 200 响应(您永远不会看到 304)。

在实践中,这是透明的,但我总是必须照顾它以确保它正确缓存,或者通过使用 Charles Proxy 观察网络流量。或通过手动检查数据库(您可以在应用程序的缓存目录中找到它)。

关于ios - 在 AFNetworking 中处理 304 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29504334/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com