当在线JSON发生变化时,alamofire如何知道?

时间:2015-09-26 15:10:32

标签: alamofire

我正在开发一个从网站上获取json的应用程序。一切正常,我正在使用alamofire。

但出于某种原因,当我在网站上发布新内容并且json文件发生变化时,alamofire不会获得新内容。相反,它从缓存加载内容而不是重新加载新内容。

唯一的解决方法是清除缓存,这是我不喜欢的方式,因为用户必须在每个视图加载时重新下载内容。

所以我要问的是,有没有办法通知alamofire方法有关新内容并尝试加载新内容而不是让我实现清除缓存的方法?

1 个答案:

答案 0 :(得分:1)

Alamofire使用基础URL加载系统,该系统依赖于NSURLCache。 HTTP请求的缓存行为由HTTP响应的Cache-Control标头的内容决定。例如,您可能希望将服务器配置为指定must-revalidate

Cache-Control: max-age=3600, must-revalidate

您还应该确保您的服务器指定了ETagContent-Length标头,以便在内容发生变化时轻松判断。

NSHipster's writeup on NSURLCache有一些很好的例子。如果您对网络缓存完全陌生,我建议您阅读非常有用的section 13 of the HTTP 1.1 spec,也可以阅读this caching tutorial