iOS下载前检查远程文件是否有更新

时间:2014-04-11 14:05:03

标签: ios nsxmlparser initwithcontentsofurl

这是一个两部分问题。 我正在使用NSXMLParser下载RSS源。

NSURL *url = [NSURL URLWithString:@"linktorssxml"];
parser = [[NSXMLParser alloc] initWithContentsOfURL:url];
[parser setDelegate:self];
[parser setShouldResolveExternalEntities:NO];
[parser parse];

我想知道是否有办法简单地远程读取xml的标头并检查最后的更新时间戳,这样我只需要运行解析器代码并实际拉出整个xml如果有变化?< / p>

此外,正如我所说,这是一个两部分问题。 我对外部托管的plist有同样的想法。目前这称为: -

_content = [[NSArray alloc] initWithContentsOfURL:[NSURL URLWithString:@"pathto.plist"]];

同样,有没有办法远程检查标题的最后更新时间,因此只有在发生变化时才下载完整的文件?

1 个答案:

答案 0 :(得分:1)

是的,但您需要使用NSURLConnectionNSURLSession下载数据,而不是要求NSXMLParser为您执行此操作。

您可以使用NSMutableURLRequest来描述您想要的内容,从而获取HTTP标头(可能包含上次修改日期)。这有一个名为setHTTPMethod:的方法,您可以将方法设置为HEAD。建立连接,获取标题,然后决定下一步该做什么。

除非XML非常大,否则这可能不是最有效的方法。如果文件已被修改,您只需要发出第二个网络请求即可获得该文件。网络请求很慢,因此您应该将它们保持在最低限度。在大多数情况下,您最好使用NSURLConnectionNSURLSession来获取文件。响应将包含HTTP标头,因此您仍然可以获取日期,您仍然可以决定是否运行解析器。

相关问题