2012-03-16 33 views
1

如果我使用獲取緩存的NSURLConnection/NSURLCache下載文件,請在服務器上編輯該文件(以便更改Last-Modified和Etag頭文件),然後下載再次文檔,返回以前的緩存版本。 NSURLCache/NSURLConnection不會嘗試使用請求中的If-Modified-Since/If-None-Match標頭檢查新資源(它將返回資源的較新版本)。iOS 4.3.x上的NSURLCache沒有檢查Last-Modified或Etag頭文件

應該與NSURLConnection結合使用NSURLCache檢查服務器上使用之前緩存的Last-Modified/Etag標頭的更新資源嗎?我似乎無法找到任何文檔來說明是否會發生這種情況,或者檢查HTTP 304內容是否由開發人員決定。

+0

我遇到了同樣的問題,但我正在使用iOS 5.我無法找到iOS檢查修改資源的任何證據。 – Leonardo 2013-03-12 20:40:07

回答

-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,等等,等等

這是一個黑客,但一個好的。

+0

很確定原始海報想要知道如何有效地利用緩存和現有的緩存協議。對此Kuddos,我不確定這個答案是有幫助的。 : - / – 2012-06-06 20:00:40