3

我需要使用 HTTP 协议下载一个 XML 文件,以便在我的 iPhone 应用程序上本地使用它。偶尔这个文件会在服务器上更新,但不是很频繁。

如何比较已经在 Documents 文件夹中下载的文件与服务器上的文件,如果内容已在服务器上更新,则只需下载它?

4

2 回答 2

12

第一次下载文件时,保存响应的 Last-Modified 标头中的日期。您可以将其从NSHTTPURLResponse对象中拉出。

在随后的运行中,将该日期If-Modified-Since放在NSURLRequest. 如果服务器上的文件没有改变,statusCodeNSHTTPURLResponse应该是 304(意思是“未修改”)并且响应的正文应该是空的。

于 2012-04-09T04:34:18.320 回答
2

如果您想遍历文档目录以查找特定命名的文件,请使用 NSFileManager-fileExistsAtPath:isDirectory并将其与下载文件的名称(-suggestedFilename只要您使用 NSURLResponse)进行比较-isEqualToString

如果您需要获取修订日期,请-attributesOfItemAtPath:error:结合使用 NSFileManager 和键 NSFileModificationDate。

于 2012-04-09T04:28:41.070 回答