我需要使用HTTP协议下载XML文件,以便在我的iPhone应用程序上本地使用它。有时,此文件将在服务器上更新,但不经常更新。
如何比较已下载的Documents文件夹中的文件与服务器上的文件,如果内容已在服务器上更新,则只下载它?
答案 0 :(得分:12)
首次下载文件时,请保存响应的Last-Modified标头中的日期。您可以将其从NSHTTPURLResponse
对象中拉出来。
在后续运行中,将该日期放在If-Modified-Since
的{{1}}标题中。如果服务器上的文件未更改,NSURLRequest
的{{1}}应为304(表示“未修改”),并且响应正文应为空。
答案 1 :(得分:2)
如果要遍历文档目录以查找特定命名的文件,请使用NSFileManager的-fileExistsAtPath:isDirectory
并将其与下载文件的名称(-suggestedFilename
进行比较,只要您使用NSURLResponse)与-isEqualToString
。
如果您需要获取修订日期,请将NSFileManager的-attributesOfItemAtPath:error:
与密钥NSFileModificationDate结合使用。