我在url请求上设置cachePolicy。 首先调用200中的url(GET)返回状态代码。 第二次调用同一个url返回200。
如果使用休息客户端,我获得第一个电话200,第二个,使用正确的标题(If-None-Match)304
在线阅读我理解iOS序列化第一个请求,状态代码为200,并在第二次调用时检索它。
有一种方法可以在UrlCache中获取304而不是200,或者了解数据是来自缓存而不是来自网络。
答案 0 :(得分:1)
来自http://jonathanblog2000.blogspot.com/2017/07/ios-uiwebview-nsurlsession-cache.html:
如果您要测试并验证缓存在您的应用程序中是否正常运行,则必须记录设备的HTTP流量,因为NSURLSession的代理将永远不会看到服务器返回的304状态代码,它将自动替换为缓存的响应中的状态代码。
这是一件好事。这意味着您的应用程序可以假装您获得了成功的响应,而不必担心如何获得响应或进行了何种优化。无论响应是否从缓存中拉出,您都可以以相同的方式处理响应。