如何检查网络响应来自 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 则执行某些操作?

使用 Alamofire 解码 json 时出错

我如何检查 Alamofire 我的请求已发送?

带有 XML 响应和正文的 SOAP 请求 swift 3,Alamofire

我应该如何使用 Alamofire 和 SwiftyJSON 解析来自 API 的 JSON 响应?