草庐IT

nsurlcache

全部标签

ios - NSURLSession 不使用缓存响应

当我直接查询NSURLCache时,我能够看到缓存的响应,但是当我通过NSURLSession:dataTaskWithRequest请求相同的资源时,它总是查询服务器并且从不给我缓存响应,即使禁用互联网也是如此。我在application:didFinishLaunchingWithOptions中配置NSURLCache如下:letURLCache=NSURLCache(memoryCapacity:20*1024*1024,diskCapacity:80*1024*1024,diskPath:nil)NSURLCache.setSharedURLCache(URLCache)然后

ios - NSCachedURLResponse willCacheResponse 不会被调用

我们已经按照下面的简短代码片段设置了一个简单的NSURLConnection和NSURLCache。我们已确保服务器(localhost:9615)返回以下缓存header:ETag:abcdefghCache-Control:public,max-age=60但是,永远不会调用willCacheResponse委托(delegate)方法。有什么想法吗?代码://IntheappdelegateNSURLCache*URLCache=[[NSURLCachealloc]initWithMemoryCapacity:4*1024*1024diskCapacity:20*1024*102

ios - 在 ios 上下载并缓存整个网页

我需要下载整个网页并将其存储在应用程序的文档目录中,并在用户下次访问时从缓存中加载它。无论我搜索多少,我总是以ASIWebPageRequest结尾..!!即使它有效,它也很旧且已弃用。所以我正在寻找一些替代方案。我试图避免它的另一个原因是因为......ItisacompletelyreimplementedURLloadingsystem,basedonverylowlevelconstructs(CFNetwork).SoasApplemakesimprovementstotheirhighlevellibraries(NSURLConnection,NSCache)ASIHTT

ios - 启用 gzip 的 NSURLCache 和 ETags 不工作

我试图让NSURLCache在iOS8上工作,但在使用ETag和gzip压缩时它似乎被破坏了。我正在使用启用了gzip压缩的NGINX作为瘦网络服务器的代理。以下响应未被NSURLCache缓存:HTTP/1.1200OKServernginx/1.7.6DateThu,06Nov201414:28:50GMTContent-Typeapplication/json;charset=utf-8Transfer-EncodingchunkedConnectionkeep-aliveVaryAccept-EncodingCache-Controlprivate,max-age=0ETagW

iOS:AFNetworking 的 AFHTTPSessionManager 缓存策略

我有一个AFHTTPSessionManager的标准子类。我通过提供我需要的session配置来使用initWithBaseURL:sessionConfiguration:初始化程序。我在配置中设置了requestCachePolicy变量,目的是让所有请求都遵循给定的缓存策略。但是,如果我要检查任何NSURLSessionDataDelegate回调方法的请求策略,它不会设置为配置中的值。为了解决这个问题,我需要设置session管理器的requestSerializer的cachePolicy变量。似乎当AFNetworking创建NSURLRequest对象时,它没有使用se

ios - 不同 POST 请求的 NSURLCache 缓存

我正在使用NSURLSession进行联网并向服务器发出POST请求。我希望能够缓存这些请求,但URL始终相同。是否可以使用NSURLCache进行缓存并将缓存键更改为唯一的内容,例如请求正文? 最佳答案 默认情况下,IIRC、POST请求根本不会被缓存。但是,是的,你当然可以做到。IIRC,在NSURLSession方面,您唯一可以控制的是请求是否被缓存。要实际控制缓存的名称,您需要实现自定义URL协议(protocol)。我从来没有做过你想做的事,但我很确定你会大致按照以下方式做:创建一个NSURLProtocol子类,并通过s

ios - NSURLCache 无视最大年龄

我正在使用以下代码从TfL下载一些数据。NSURLSession*session=[NSURLSessionsessionWithConfiguration:[NSURLSessionConfigurationdefaultSessionConfiguration]delegate:selfdelegateQueue:[NSOperationQueuemainQueue]];NSMutableURLRequest*req=[NSMutableURLRequestrequestWithURL:[NSURLURLWithString:@"https://api.tfl.gov.uk/Sto

ios - 拦截来自 UIWebView 的生成的 URL 请求

我正在尝试通过NSURLProtocol将指定的网页缓存到磁盘,现在我只能获得第一个URL请求,但UIWebView会产生更多的URL请求以加载图形。那么我怎样才能从第一个URL拦截UIWebView产生的所有请求呢?非常感谢! 最佳答案 实现委托(delegate)方法-(BOOL)webView:(UIWebView*)webViewshouldStartLoadWithRequest:(NSURLRequest*)requestnavigationType:(UIWebViewNavigationType)navigation

javascript - 清除 ios 上的 UIWebView 缓存

我有一个Phonegap应用程序,我需要在某个时候删除html缓存,因为我已经更新了我的应用程序中的图像。我已经试过了:[[NSURLCachesharedURLCache]removeAllCachedResponses];[[NSURLCachesharedURLCache]setDiskCapacity:0];[[NSURLCachesharedURLCache]setMemoryCapacity:0];通过javascript在插件中调用,我这样做:location.reload(true)但我仍然看到似乎已缓存的相同图像。还有其他方法吗?我可以告诉用户退出应用程序并终止它并在

ios - NSURLCache cachedResponseForRequest 不检索缓存数据

我正在尝试从NSURLCache获取之前缓存的信息。使用此代码:NSString*theCompleteURL=@"http://192.168.1.2:8080/api/endpoint.json";NSURLRequest*request=[NSURLRequestrequestWithURL:[NSURLURLWithString:theCompleteURL]];NSCachedURLResponse*response=[[NSURLCachesharedURLCache]cachedResponseForRequest:request];if(response){NSLog(