如何在iOS中禁用HTTP缓存

时间:2015-09-25 02:02:25

标签: ios http caching nsurlconnection

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

1 个答案:

答案 0 :(得分:1)

NSURLSessionConfiguration的{​​{3}}说明该类URLCache属性:

  

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

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

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