iOS - 是否可以缓存分块的HTTP响应?

3
我正在使用AFNetworking从后端获取数据,并将请求的cachePolicy设置为NSURLRequestUseProtocolCachePolicy。响应头包含ETag值,Transfer-Encoding是chunked。
第二次调用相同的API时,它会像预期的那样获取新鲜数据而不是从缓存中获取。
我注意到,如果响应没有分块(包含Content-Length头),则缓存可以正常工作。
我的问题是:iOS是否有可能缓存分块响应?
感谢任何建议。

我认为你可能会发现我的答案有用:http://stackoverflow.com/questions/20248707/nsurlcache-inconsistent-behaviour - m_katsifarakis
1个回答

0

NSURLCache 是 AFNetworking 用于缓存的,但不支持缓存此类型的请求。

您可以尝试以下方法:

  • 使用 SDURLCache,这是一个开源的替代方案,可以让您更多地控制缓存,或者
  • 自己子类化 NSURLCache 来实现自己的缓存策略,或者
  • 使用支持缓存头的请求。

你有没有任何官方文件说明NSURLCache不支持? - Hai Hw
从NSURLRequest文档中:“如果您正在进行HTTP或HTTPS字节范围请求,请始终使用NSURLRequestReloadIgnoringLocalCacheData策略。要了解更多信息,请阅读缓存字节范围请求。” - quellish

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接