我正在使用我从教程中找到的代码来查找"修改日期"服务器上的文件信息。它如下......
// create a HTTP request to get the file information from the web server
NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:remoteFileURL];
[request setHTTPMethod:@"HEAD"];
NSHTTPURLResponse* response;
[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:nil];
// get the last modified info from the HTTP header
NSString* httpLastModified = nil;
if ([response respondsToSelector:@selector(allHeaderFields)]) {
httpLastModified = [[response allHeaderFields] objectForKey:@"Last-Modified"];
}
并且,在大多数情况下,它的工作原理! WA-HOO。
除了少数文件外,它似乎正在返回过时的信息。事实上,对于至少一个,它会为甚至不再存在的文件返回一个日期(Fri, 24 Apr 2015 04:32:55 GMT
)。我从服务器上删除了它,但每次运行我的应用程序时它仍然会返回该值,就像文件仍然存在一样。
我已检查并重新检查remoteFileURL
是否指向正确的网址,并且我已确认该文件已不再存在于服务器上。并且,就像我说的那样,对于大多数文件来说它完美无缺,显然系统并没有完全破坏。
这是我第一次使用NSMutableURLRequest
和NSHTTPURLResponse
并获取文件标题等。有什么我不知道的,这可以解释这个吗?可能有缓存或需要清除的东西吗?
理想情况下,我该怎样做才能确保我的应用收到正确的信息?
提前致谢!
答案 0 :(得分:1)
发表评论作为答案
由于NSURL的缓存机制,这类事情发生了
尝试添加以下行以删除所有缓存数据。
[[NSURLCache sharedURLCache] removeAllCachedResponses];
NSURL *url = [NSURL URLWithString:aStrFinalURL];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData];