如何检查网络响应来自 Alamofire 请求中的缓存或服务器?
Posted
技术标签:
【中文标题】如何检查网络响应来自 Alamofire 请求中的缓存或服务器?【英文标题】:How to check network response is from Cache or Server in Alamofire request? 【发布时间】:2019-01-14 04:47:15 【问题描述】:我在 ios 应用中使用 Alamofire 和缓存响应进行网络调用。
响应正在缓存,但我无法检查收到的响应是来自缓存还是服务器?
如何检查?
【问题讨论】:
你能把你的代码给我告诉你吗? 在 dataTaskWillCacheResponseWithCompletion 我正在设置响应头["Cache-Control"] = "max-age=60" 【参考方案1】:您可以检查是否有任何请求的缓存数据可用或未使用。
if let cacheData = URLCache.shared.cachedResponse(for: request)
// Already cached
【讨论】:
我检查了相同但总是给我 - 即使我点击离线请求并从缓存中获取数据,响应也是来自服务器。下面是代码。 //它的 Alamofire 请求 if let cacheData = URLCache.shared.cachedResponse(for: (request.request?.urlRequest!)!) print("Data is from cache") else print("Data is from Server")以上是关于如何检查网络响应来自 Alamofire 请求中的缓存或服务器?的主要内容,如果未能解决你的问题,请参考以下文章
如何显示来自 Alamofire 请求的 JSON 数组响应的某些部分
如何使用 Alamofire 为每个请求添加 auth 标头,如果响应为 401 则执行某些操作?