Ответ 1
Я нашел эту ссылку, которая может вам помочь: https://github.com/AFNetworking/AFNetworking/issues/495
В принципе, вы можете переопределить NSURLConnection.
Я хочу обеспечить кэширование в 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)
Спасибо заранее.
Я нашел эту ссылку, которая может вам помочь: https://github.com/AFNetworking/AFNetworking/issues/495
В принципе, вы можете переопределить NSURLConnection.
В дополнение к переопределению NSURLConnection
я хотел бы использовать внешнее управление кешем, например EGOCache. Это будет более гибким, чтобы вы могли в любое время перейти на другую систему кэширования.
При создании 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 можно найти здесь.