草庐IT

nsurlcache

全部标签

swift - Alamofire - NSURLCache 不工作?

我的缓存设置如下varcacheSizeMemory=20*1024*1024varcacheSizeDisk=100*1024*1024varsharedCache=NSURLCache(memoryCapacity:cacheSizeMemory,diskCapacity:cacheSizeDisk,diskPath:"SOME_PATH")NSURLCache.setSharedURLCache(sharedCache)使用缓存策略创建请求varrequest=NSMutableURLRequest(URL:NSURL(string:"\(baseUrl!)\(path)")!,

ios - 当传输编码的响应 header 值被分块时,NSURLCache 不起作用

我今天在检查CharlesProxy中的请求和响应header时发现(可能)NSURLCache存在问题。这个问题有点令人困惑,但我能够始终如一地重现它:简而言之,问题与使用iOS的原生NSURLCache和默认策略缓存NSURLRequest有关。事实证明,只要响应具有headertransfer-encoding:chunked,请求就不会被缓存。但是,如果响应header是content-length:xxx,则缓存工作正常。具体来说,似乎当响应被分block时,NSURLCache不保存eTag并且也忽略了将if-none-matchheader附加到对同一url的后续请求,因

ios - 当传输编码的响应 header 值被分块时,NSURLCache 不起作用

我今天在检查CharlesProxy中的请求和响应header时发现(可能)NSURLCache存在问题。这个问题有点令人困惑,但我能够始终如一地重现它:简而言之,问题与使用iOS的原生NSURLCache和默认策略缓存NSURLRequest有关。事实证明,只要响应具有headertransfer-encoding:chunked,请求就不会被缓存。但是,如果响应header是content-length:xxx,则缓存工作正常。具体来说,似乎当响应被分block时,NSURLCache不保存eTag并且也忽略了将if-none-matchheader附加到对同一url的后续请求,因

iphone - 将 Assets 预加载到 NSURLCache

我们有一个包含多个静态Assets的移动应用程序。尤其相关的是440k的“供应商”javascript...诸如Backbone和jQuery之类的东西以及上述各种插件和附加组件。与iOS应用程序本身相比,供应商的内容更改频率更低……可能每两个月一次。因此,它是预加载到我们通过Apple分发的应用程序镜像中的主要候选者。我的问题是:如何在我有位的地方预加载NSURLCache作为Assets?理想情况下,我会:1)将vendor_assets.js捆绑到我的应用程序分发版中2)在启动时,调用类似[NSURLCachepreloadAsset:"vendor_assets.js",[NS

ios - 我如何判断 NSURLCache 是否正常工作?

我已经在我的AppDelegate中配置了一个内存和磁盘缓存,但它似乎并没有使用缓存-它似乎每次都去网络。有没有一种简单的方法来检查数据是否被缓存并在后续请求中检索?我必须设置缓存吗?我是否需要通过每次调用cachedResponseForRequest或类似的方式来显式检查缓存?它可以在模拟器上运行吗?我的部署目标是iOS6。谢谢。 最佳答案 一些观察:请求必须是可以缓存的请求(例如http或https,但不能是ftp)。响应必须生成指示可以缓存响应的header。值得注意的是,它必须设置Cache-Control。参见NSHip

iphone - NSUrlCache 磁盘限制?

我正在尝试在服务器上存储大量图像并使用AFNetworking的图像缓存功能,该功能利用了NSUrlCache,这样应用程序就不会不需要一直访问服务器,甚至可以离线工作。重要的是图像永远不会过期并永远保留在缓存中,所以我想知道缓存可以占用的空间是否有磁盘限制。(例如,当缓存达到限制时,旧图像可能会过期)谢谢! 最佳答案 检查电流限制:NSLog(@"DiskLimit:%ubytesandconvertedtoMB:%u",[NSURLCachesharedURLCache].diskCapacity,[NSURLCacheshar

android - Android 中的 NSURLCache 替代方案

我的iOS应用程序中有自定义缓存引擎。AFURLCache*urlCache=[[[AFURLCachealloc]initWithMemoryCapacity:0diskCapacity:0diskPath:@""]autorelease];[NSURLCachesetSharedURLCache:urlCache];现在想到安卓版。那里的方法是什么?有没有办法设置HTTP请求的内部自定义处理? 最佳答案 NSURLCache的Android替代品是HttpResponseCache。http://developer.androi

ios - NSURLCache,连同 NSURLSession,不尊重 : Cache-Control: max-age:86000, private,must-revalidate

在AppDelegate.m中,我配置了:NSURLCache*sharedURLCache=[[NSURLCachealloc]initWithMemoryCapacity:20*1024*1024diskCapacity:100*1024*1024diskPath:@"FhtHttpCacheDir"];然后是http请求:-(void)testRestfulAPI{NSURLSessionConfiguration*config=[NSURLSessionConfigurationdefaultSessionConfiguration];NSURLSession*session=

ios - NSURLCache 是否删除过期的缓存响应?

Apple从iOS5.0开始支持磁盘缓存。我以前使用的是自制解决方案,但我正在测试NSURLCache,希望最终能使用它,因为我在过去看到过奇怪的行为。我遇到的一个更令人费解的问题是cachedResponseForRequest:返回过期的请求。我一直在通过将我正在使用的iPhone上的时钟向前设置来进行测试。解析header清楚地表明设备时间早于到期日期。我愿意接受可能有一个后台任务定期修剪过期的请求。我已经完成了测试,实际上我在等着看请求是否“自然”过期,但事实并非如此。Apple是否未能正确实现缓存失效?我正在使用Charles进行测试代理人。这是一个toughproblem而

ios - 我可以为特定的 UIWebView 或 NSURLConnection 指定 NSURLCache 吗?

有什么方法可以指定某些使用不同的NSURLCache吗?我的应用程序正在处理潜在的私有(private)信息。我想保留多个缓存,以便我可以比默认的sharedCache更频繁地清除私有(private)缓存。我看过[NSURLCachesetSharedCache]方法,但我想知道是否有办法将缓存webview设置为webview或请求到请求。任何输入/反馈/讨论都是有用的。谢谢。 最佳答案 NSURLConnectionDataDelegate中的回调可能会有所帮助。-(NSCachedURLResponse*)connectio