Подтвердить что ты не робот

Как обеспечить кэширование в AFNetworking, несмотря на заголовки кэша

Я хочу обеспечить кэширование в 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)

Спасибо заранее.

4b9b3361

Ответ 2

В дополнение к переопределению NSURLConnection я хотел бы использовать внешнее управление кешем, например EGOCache. Это будет более гибким, чтобы вы могли в любое время перейти на другую систему кэширования.

Ответ 3

При создании 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 можно найти здесь.