我的服务器正在设置etag头元素以支持缓存。
iOS(6.1.4)应用程序使用本地的NSURLConnection类向服务器发送XML请求
第一次服务器在头部中发送带有etag的响应
如果iOS应用程序向服务器发送完全相同的请求,我可以在服务器日志中看到NSURLConnection未填充if-none-match头部
...然后服务器会响应200而不是304
用于请求的缓存策略是:
[request setCachePolicy:NSURLRequestReturnCacheDataElseLoad];
NSURLCache 初始化时需指定
[[NSURLCache sharedURLCache] setMemoryCapacity:1024*1024*10];
我的问题: - NSURLConnection 没有设置 "if-none-match" 头字段是正常的吗? - 我需要自己设置这个头字段吗?(从缓存中获取响应,读取 etag 值并将其设置在请求头中)?
NSURLRequestReloadIgnoringLocalCacheData
。我以为我在使用NSURLRequestReturnCacheDataElseLoad
,因为我自己添加了If-None-Match
头部(并且当我没有发送它时出现了错误),而我已经忘记了我是自己添加头部的。 - Marián Černý