如何在iOS中禁用HTTP缓存

如何在iOS中禁用HTTP缓存,ios,http,caching,nsurlconnection,Ios,Http,Caching,Nsurlconnection,众所周知,标准HTTP协议使用“缓存控制”来管理缓存。如果我们为密钥设置“max age=负数”,NSURLConnection将不会连接到网络,但会立即返回缓存。最近,我遇到了一个不可思议的要求。我被告知要禁用HTTP缓存,如果响应头指示缓存存在,则禁用该事件。我不能为请求头设置“缓存控制”。就像浏览器一样。我知道iOS实现了标准HTTP协议,我不能改变NSURLConnection的行为。有人能帮忙吗?非常感谢。forNSURLSessionConfiguration说明了该类的URLCac

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

for
NSURLSessionConfiguration
说明了该类的
URLCache
属性:

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

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

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

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