我正在使用ASIDownloadCache缓存下载文件,下面的代码是我如何设置请求和下载缓存的。`request = super :url1;request setTimeOutSeconds:50;
ASIDownloadCache *cache = [[ASIDownloadCache alloc] init] ;
[cache setStoragePath:[path stringByAppendingPathComponent:@"resource"]];
[cache setShouldRespectCacheControlHeaders:NO];
self.myCache = cache;
[cache release];
[request setDownloadCache:self.myCache];
//[self setSecondsToCache:60*60*24*30];
[request setCachePolicy:ASIAskServerIfModifiedCachePolicy];
[request setCacheStoragePolicy:ASICachePermanentlyCacheStoragePolicy];
我的问题是,当url的头部被修改后,ASIDownloadCache仍然在使用缓存的数据。为什么?有人知道答案吗?
更改前url的头部如下所示:
HTTP/1.1 200 OK服务器: Apache/2.2缓存控制:公共内容类型:文本/html;字符集=UTF-8日期:星期一,2011年11月08:26:15 GMT过期时间:星期一,2011年11月08:23:35GMT语法:公共传输编码:分块Etag: 1320654215连接:保持活动上次修改时间:星期一,2011年11月07 08:23:35 GMT
修改后的头部如下:
HTTP/1.1 200 OK服务器: Apache/2.2缓存控制:公共内容类型:文本/html;字符集=UTF-8日期:星期一,2011年11月07 08:28:49 GMT到期时间:星期一,2011年11月07 08:28:32 GMT语法:公共传输编码:分块Etag: 1320654512连接:保持活动上次修改时间:星期一,07 11月2011 08:28:32 GMT
即使Last-Modified字段不同,它仍然使用缓存的数据。
发布于 2011-11-08 10:40:28
我想我找到了这个问题。当我得到头的时候,请求还没有完成。即使报头不同,它也会检查请求是否已完成。所以我想我应该写我自己的缓存。
发布于 2011-12-22 21:24:19
答案在问题中:
[cache setShouldRespectCacheControlHeaders:NO];
你应该使用
[cache setShouldRespectCacheControlHeaders:YES];
以使缓存尊重标头信息。
希望能有所帮助。
https://stackoverflow.com/questions/8018016
复制相似问题