我想在AFNetworking中强制执行缓存,即使缓存头是Cache-Control:·private没有其他缓存相关的头,我知道它将是一个基于时间的缓存,我没有问题。
即使超出AFNetworking范围,也请提供建议。
我正在制作iOS 5 iPad应用程序,以下是我正在尝试缓存的XML文件中的头文件:
HTTP/1.1·200·OK(CR)(LF)
Cache-Control:·private(CR)(LF)
Content-Type:·text/xml;·charset=utf-8(CR)(LF)
Server:·Microsoft-IIS/7.5(CR)(LF)
X-AspNet-Version:·2.0.50727(CR)(LF)
X-Powered-By:·ASP.NET(CR)(LF)
Date:·Wed,·11·Jul·2012·18:42:27·GMT(CR)(LF)
Connection:·close(CR)(LF)
Content-Length:·20464(CR)(LF)
(CR)(LF)
提前致谢。
答案 0 :(得分:0)
我发现此链接可能会对您有所帮助:https://github.com/AFNetworking/AFNetworking/issues/495
基本上,您可以覆盖NSURLConnection。
答案 1 :(得分:0)
除了覆盖NSURLConnection
之外,我还想使用外部缓存管理,例如EGOCache。这将更灵活,您可以随时更改为其他缓存系统。
答案 2 :(得分:0)
创建NSURLRequest时(+ requestWithURL:cachePolicy:timeoutInterval:或者 - initWithURL:cachePolicy:timeoutInterval:),您可以使用以下值设置它的cachePolicy。
enum {
NSURLRequestUseProtocolCachePolicy = 0,
NSURLRequestReloadIgnoringLocalCacheData = 1,
NSURLRequestReloadIgnoringLocalAndRemoteCacheData =4,
NSURLRequestReloadIgnoringCacheData = NSURLRequestReloadIgnoringLocalCacheData,
NSURLRequestReturnCacheDataElseLoad = 2,
NSURLRequestReturnCacheDataDontLoad = 3,
NSURLRequestReloadRevalidatingCacheData = 5
};
typedef NSUInteger NSURLRequestCachePolicy;
可以找到有关cachePolicy的更多详细信息here。