【问题标题】:How to enforce caching in AFNetworking despite cache headers尽管有缓存头,如何在 AFNetworking 中强制缓存
【发布时间】:2012-07-11 11:44:47
【问题描述】:

即使缓存标头是 Cache-Control,我也想在 AFNetworking 中强制执行缓存:·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)

提前致谢。

【问题讨论】:

  • AFNetworking 使用 NSURLConnection、NSURLRequest 并利用 NSURLCache。它不直接处理缓存。您可以通过以下链接找到更多信息:AFNetworking FAQ
  • 嗨,我的 API 返回以下响应日期:2016 年 1 月 29 日星期五 07:14:47 GMT 服务器:Apache/2.2.14 (Ubuntu) X-Powered-By: PHP/5.3.2- 1ubuntu4.30 变化:接受编码内容编码:gzip 内容长度:10080 保持活动:超时 = 2,最大 = 100 连接:保持活动内容类型:文本/html,但我的应用程序没有使用 AFNetworking 缓存数据,请让我知道以下标题中缺少的内容

标签: iphone ios http caching afnetworking


【解决方案1】:

我发现此链接可能对您有所帮助:https://github.com/AFNetworking/AFNetworking/issues/495

基本上,您可以覆盖 NSURLConnection。

【讨论】:

  • 我不认为链接提到你应该覆盖 NSURLConnection。其实,你只需要设置 NSURLRequest 的缓存策略即可。
【解决方案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 的细节可以在here找到。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-15
      • 2018-04-29
      • 2013-10-21
      • 2020-07-06
      • 2015-03-25
      • 2012-04-15
      • 1970-01-01
      • 2015-12-01
      相关资源
      最近更新 更多