如何从 NSURLSessionTask 禁用缓存

2024-02-06

在我的 iOS 应用程序中,我正在使用NSURLSessionTask将 json 数据下载到我的应用程序。我发现,当我直接从浏览器调用 url 时,我会得到最新的 json,而当从应用程序内调用它时,我会得到旧版本的 json。

这是由于缓存造成的吗?我怎么知道NSURLSessionTask不使用缓存。

这是我使用的调用:

NSURLSessionTask *task = [[NSURLSession sharedSession] dataTaskWithURL:url completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {

Thanks!


如果您阅读@runmad 的链接,您可以在流程图中看到,如果文件的 HEAD 未更改,当您设置缓存策略时,它仍然会使用缓存版本。

在 Swift3 中我必须这样做才能让它工作:

let config = URLSessionConfiguration.default
config.requestCachePolicy = .reloadIgnoringLocalCacheData
config.urlCache = nil

let session = URLSession(configuration: config)

这得到了文件的真正非缓存版本,我需要它来进行带宽估计计算。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 NSURLSessionTask 禁用缓存 的相关文章

随机推荐