如何知道请求是不是来自缓存或不使用 AFNetworking

Posted

技术标签:

【中文标题】如何知道请求是不是来自缓存或不使用 AFNetworking【英文标题】:How to know If the request came from Cache or not using AFNetworking如何知道请求是否来自缓存或不使用 AFNetworking 【发布时间】:2014-01-13 05:48:53 【问题描述】:

这是我使用 AFNetworking 的第一天,我喜欢它 :) 我只有一个问题,

我有一个请求,我缓存了响应,并设置了缓存策略, 我怎么知道响应数据是来自缓存端还是从原始源加载的?

我需要类似的东西

NSLog(@"Cach Used : %@", [request didUseCachedResponse] ? @"YES" : @"NO");

感谢您的帮助:)

【问题讨论】:

您是否尝试检查状态码?如果 NSURLConnection 吞下 304 并返回 200,这可能不起作用。 没错,它一直返回 200。吞咽:D 【参考方案1】:

无法以编程方式检查响应是否来自缓存,如果为 hhtp 请求正确设置了缓存策略,则您的服务器响应包含有效的 Cache-Control 标头,响应将自动缓存以供后续请求.如果响应来自缓存,它将比来自服务器的时间早一点。这是可以为您提供更多信息的链接link 和AFNetworking FAQ

【讨论】:

以上是关于如何知道请求是不是来自缓存或不使用 AFNetworking的主要内容,如果未能解决你的问题,请参考以下文章

RESTDataSource - 如何知道响应来自获取请求还是缓存

Rails,如何知道请求是不是来自本地主机?

使用 SDWebImage 而不是 AFNetworking 进行图像加载有很大的优势吗?

服务器如何知道请求来自客户端,而不是窃听黑客?

如何检查网络响应来自 Alamofire 请求中的缓存或服务器?

如何在 Vue3 中存储/缓存来自 CMS 的请求数据?