如果没有更改,请避免再次下载文件

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

如何比较文件夹中已经下载的文件和服务器上已经下载的文件,如果服务器上的内容已经更新,只要下载它就可以了?

第一次下载文件时,保存响应的Last-Modified标题中的date。 你可以把它从NSHTTPURLResponse对象中取出。

在后续运行中,将该date放在NSURLRequestIf-Modified-Since标头中。 如果服务器上的文件没有改变,则NSHTTPURLResponsestatusCode应该是304(表示“Not Modified”),响应的主体应该是空的。

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

如果需要获取修订date,请使用NSFileManager的-attributesOfItemAtPath:error:与NSFileModificationDate键一起使用。