如何在应用处于离线状态时使用Alamofire获取缓存响应?

时间:2017-02-25 15:46:16

标签: ios swift caching alamofire nsurlrequestcachepolicy

通过Alamofire获得response后,在某些情况下,实施数据库或管理本地存储我自己(文件等)可能有点矫枉过正

我了解Alamofire的requestCachePolicy并且它已经缓存了回复(基于cache-control' max-age,但是这更多地与减少请求数量/改善体验在线时

但是当我通过Alamofire没有可用的连接时,是否可以使用缓存的响应? (Alamofire是否提供某种方便的方法来处理此问题)

1 个答案:

答案 0 :(得分:0)

实现此行为。您应该尝试修改“正在进行”的请求即将执行并设置标志returnCacheDataDontLoadreturnCacheDataElseLoad以获得所需的行为。 (取决于您的需求)

类似的东西:

var req = URLRequest(url: URL(string: "http://foo.bar.com/res")!)
if noInternet {
    req.cachePolicy = .returnCacheDataDontLoad
}

同时确保应用正在与服务器协商的缓存策略,以防您需要进行调整。

希望它有所帮助! :)