在我的 iPhone 应用程序中,我需要通过 HTTP
查询互联网 .m4a
文件的最后修改日期,但我不要想下载它。
我正在阅读 Apple 关于 NSURLRequest
和 NSHTTPURLResponse
的文档,但它似乎都与下载文件有关,而不是先查询它。也许我错了。
如何通过 HTTP
知道 .m4a
文件的最后修改日期,无需 下载它?
谢谢!
最佳答案
此答案假设您的服务器支持它,但您所做的是向文件 URL 发送“HEAD”请求,您只取回文件头。然后,您可以检查名为“Last-Modified”的 header ,它通常具有日期格式 @"EEE',' dd MMM yyyy HH':'mm':'ss 'GMT'"
。
这是一些代码:
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"HEAD"];
NSHTTPURLResponse *response;
[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:nil];
if ([response respondsToSelector:@selector(allHeaderFields)])
{
NSDictionary *dictionary = [response allHeaderFields];
NSString *lastUpdated = [dictionary valueForKey:@"Last-Modified"];
NSDate *lastUpdatedServer = [fileDateFormatter dateFromString:lastUpdated];
if (([localCreateDate earlierDate:lastUpdatedServer] == localCreateDate) && lastUpdatedServer)
{
NSLog(@"local file is outdated: %@ ", localPath);
isLatest = NO;
} else {
NSLog(@"local file is current: %@ ", localPath);
}
} else {
NSLog(@"Failed to get server response headers");
}
当然,您可能希望此操作在后台异步完成,但这段代码应该为您指明正确的方向。
最好的问候。
关于iphone - 如何使用 NSHTTPURLResponse 在 iPhone 上通过 HTTP 查询文件的最后修改日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10856302/