1

我用这个在树林里:我有一个通用的、基于导航的应用程序,它显示当前存储在 plist 文件中的数据。在未来的版本中,我想将数据库迁移到我服务器上的 JSON 文件,应用程序可以将其下载到它的包中,然后解析它。谁能建议一种简单的轻量级方法来检查捆绑中当前存储的文件是否与服务器上托管的版本匹配?本质上是检查数据库的更新,而无需重新下载整个 JSON 文件。

下面是 JSON 文件开头的当前样子的片段。

{ "version" : "0.2", "description" : "1. Corrections to several entries.\n2. Added 21 new departments from Alameda & Fresno Counties.", "counties" : {............... *Rest of the JSON file here* .....}

我的想法是将“版本”(“0.2”)值存储到 NSUserDefaults 中,并在每次应用启动时使用该值在线检查可用的 JSON 文件。

我是在正确的轨道上还是有更好的方法来做到这一点?

谢谢

罗密欧

4

2 回答 2

3

您可以将If-Modified-Since标头添加到NSMutableURLRequest. 如果服务器上的文档自该日期以来发生了更改,您将取回数据。如果它没有改变,你会得到一个 304 Not Modified 并且没有数据。

这比发出 HEAD 请求要好得多,因为在更新文件的情况下,您只发出一个请求而不是两个请求。

于 2012-07-27T02:52:24.273 回答
1

执行 HEAD 请求(而不是 GET)并检查LastModified标头。如果自上次检查后文件已被修改,请下载该文件。将修改后的时间保存在某处以与下次比较。

您可以像这样在请求对象上设置 http 方法:

 [request setHTTPMethod:@"HEAD"];
于 2012-07-27T02:23:34.990 回答