我一直在考虑将Alamofire用于我的网络请求。我读过Alamofire进行回调缓存的地方。我的意思是,当我对同一个URL执行多个GET时,实际请求只有1个,并且两个都只收到响应。这样,我可以避免对同一资源进行多次网络调用,但是在两个回调中都具有该资源
我只是在他们的文档中找不到这个概念的真相。
所以我的问题可能吗?如果是这样,这仅仅是幕后的事情还是我该如何使用?
我一直在使用他们文档中的以下代码进行测试:
func x() {
Alamofire.request("https://httpbin.org/get").responseJSON { response in
print("Request: \(String(describing: response.request))") // original url request
print("Response: \(String(describing: response.response))") // http url response
print("Result: \(response.result)") // response serialization result
print("Timeline: \(response.timeline)")
if let json = response.result.value {
print("JSON: \(json)") // serialized json response
}
if let data = response.data, let utf8Text = String(data: data, encoding: .utf8) {
print("Data: \(utf8Text)") // original server data as UTF8 string
}
}
}
x()
x()
x()
方法x被调用3次,并且在网络上触发了3个GET。
答案 0 :(得分:0)
我不确定您已经阅读了什么,但是Alamofire没有任何类型的请求重复数据删除。 AlamofireImage确实可以处理图像请求,但是该功能仅存在于该库中。但是,Alamofire确实支持标准的HTTP缓存方法,因此,如果您两次请求相同的资源,并且服务器正确返回了其中一个缓存头,则Alamofire应该接受本地缓存的副本。这是通过标准URLCache
类完成的,因此您应该阅读其文档以了解更多信息。