我如何使iOS的caching无效的特定url?
使用NSURLSession
的默认caching,如何使特定URL的caching无效?
我注意到NSURLCache
的removeCachedResponseForRequest:
方法,但是这需要一个NSURLRequest
对象,我没有原始请求。 我是否需要在创build它们时存储这些内容,以便将它们传回到removeCachedResponseForRequest:
或者,我可以使用相应的URL创build一个新的URL,然后将其作为等效目的,即使它没有与原始相同的头域和其他属性?
如果你想进一步,你可以重置你想强制重载的url请求的caching响应。 执行以下操作:
let newResponse = NSHTTPURLResponse(URL: urlrequest.URL!, statusCode: 200, HTTPVersion: "1.1", headerFields: ["Cache-Control":"max-age=0"]) let cachedResponse = NSCachedURLResponse(response: newResponse!, data: NSData()) NSURLCache.sharedURLCache().storeCachedResponse(cachedResponse, forRequest: urlrequest)
作为响应的caching控制头部,最大时间为0(强制),当您执行此请求时,永远不会返回响应。
您的答案适用于强制一个请求,但如果您想要两个版本的请求一个强制和另一个依靠caching的响应,一旦您强制请求删除caching的请求是需要的。
该解决scheme不是使现有URL的caching无效,而是设置:
request.cachePolicy = NSURLRequestReloadIgnoringLocalCacheData;
当您对资源发出下一个请求时,您知道这是无效的。 有些选项只能忽略本地caching,或者要求上游代理忽略它们的caching。 有关详细信息,请参阅NSURLRequest / NSMutableURLRequest文档。
以下是一直在为我工作的东西:
request.cachePolicy = NSURLRequestCachePolicy.ReloadIgnoringCacheData
以下是关于chache政策的所有选项,所以您可能会find一个更适合您需求的选项:
使用Swift 2.2和Xcode 7.3
- 如何禁用Alamofire中的caching
- 各种iOS版本在Web应用程序caching大小限制及其响应方面有何不同?
- 我怎么能用WKWebView做清单请求
- Cordova File Plugin从ioscaching中加载video源
- Alamofire Image:在af_setImageWithURL()之后从AutoPurgingImageCache获取图像
- 在iOS应用程序中预先填充UIWebView的HTML5脱机appcache
- ASIHTTPRequest似乎总是cachingJSON数据
- AFNetworking – 不要caching响应
- IOS我如何asynchronous下载和caching图像和video在我的应用程序中使用