【问题标题】:How to disable HTTP cache in iOS如何在 iOS 中禁用 HTTP 缓存
【发布时间】:2015-12-22 18:46:17
【问题描述】:

众所周知,标准的 HTTP 协议使用 'Cache-Control' 来管理缓存。如果我们为键设置'max-age = 负数',NSURLConnection 将不会连接到网络,而是立即返回缓存。最近,我遇到了一个荒谬的要求。我被告知禁用 HTTP 缓存,如果响应标头指示缓存存在,则事件。而且我无法为请求标头设置“缓存控制”。就像浏览器一样。我知道 iOS 实现了标准的 HTTP 协议,我无法改变 NSURLConnection 的行为。任何人都可以帮忙吗?非常感谢。

【问题讨论】:

  • 如果我没记错的话,NSURLSession 有办法避免缓存(配置属性、委托方法等)。也许您可以迁移到这个更新、更强大的 API。

标签: ios http caching nsurlconnection


【解决方案1】:

NSURLSessionConfigurationdocumentation 表示该类的 URLCache 属性:

要禁用缓存,请将此属性设置为 nil。

因此,您应该使用将URLCache 设置为nil 的配置来创建NSURLSession

NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration];
config.URLCache = nil;
NSURLSession *session = [NSURLSession sessionWithConfiguration: defaultConfigObject 
                                                      delegate:self 
                                                 delegateQueue:[NSOperationQueue mainQueue]];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-23
    • 1970-01-01
    • 2014-10-05
    • 1970-01-01
    • 2016-09-30
    • 1970-01-01
    • 1970-01-01
    • 2014-03-01
    相关资源
    最近更新 更多