iOS 4.3.x上的NSURLCache未检查Last-Modified或Etag标头

时间:2012-03-16 02:11:32

标签: ios networking

如果我使用缓存的NSURLConnection / NSURLCache下载文档,在服务器上编辑该文档(以便Last-Modified和Etag标题更改),然后再次下载文档,则返回先前的缓存版本。 NSURLCache / NSURLConnection不会尝试使用请求中的If-Modified-Since / If-None-Match标头检查更新的资源(这将返回更新版本的资源)。

与NSURLConnection一起使用的NSURLCache是​​否使用之前已缓存的Last-Modified / Etag标头检查服务器上的更新资源?我似乎无法找到任何文档来说明是否应该发生这种情况,或者检查HTTP 304内容是否取决于开发人员。

1 个答案:

答案 0 :(得分:-1)

我会让其他人评论如何使用NSURLCache。我发现阻止使用NSURLConnection,代理服务器和配置错误的Web服务器进行缓存的最可靠方法是在URL中附加一个递增的数字。

所以不要使用http://mycompany.com/path,而是使用http://mycompany.com/path?c=1http://mycompany.com/path?c=2http://mycompany.com/path?c=3等等。

这是一个黑客,但是一个好的。