gpt4 book ai didi

ios - AFNetworking不缓存HTTPS请求

转载 作者:行者123 更新时间:2023-12-01 17:43:31 30 4
gpt4 key购买 nike

我们正在构建一个使用AFNetworking连接到运行Tornado的服务器的iOS应用。服务器在响应中包含头Cache-Control: private, max-age=900。在本地计算机上运行服务器时,我可以说AFNetworking使用了缓存的值,因为对于来自应用程序的重复请求,服务器没有收到请求。当我们将同一台Tornado服务器部署到测试计算机时,来自该应用程序的每个请求都会导致服务器上收到一个请求,而忽略了缓存的值。

两种设置之间的唯一区别是服务器的URL和通过HTTPS连接访问测试服务器的事实,而本地主机使用HTTP。 HTTPS是否会影响AFNetworking的缓存?如果是,那么如何使AFNetworking尊重缓存头?

最佳答案

不知道它是否会对您有所帮助,但是无论如何这里都是这样:
AFNetworking使用NSURLConnection,后者使用NSURLCache共享缓存。 AFNetworking在缓存方面绝对透明,并且不执行任何特定操作。
我的请求是https,并且缓存良好。
Cache-Control响应指令允许源服务器覆盖响应的默认可缓存性:
private 的
指示响应消息的全部或部分旨在用于单个用户,并且不得由共享缓存缓存。这使原始服务器可以声明
响应仅适用于一个用户,不是对其他用户请求的有效响应。 private (非共享)缓存可以缓存响应。
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.1
如果可以接受,请尝试将政策更改为公开。
从应用程序的响应中记录标题,并查看您的cache.db,看看实际上是否有缓存。
尝试配置共享缓存-类似

int cacheSizeMemory = 1*1024*1024; // 4MB
int cacheSizeDisk = 100*1024*1024; // 100MB
[[NSURLCache sharedURLCache] setMemoryCapacity:cacheSizeMemory];
[[NSURLCache sharedURLCache] setDiskCapacity:cacheSizeDisk];
另一个很好的阅读这里
http://petersteinberger.com/blog/2012/nsurlcache-uses-a-disk-cache-as-of-ios5/

关于ios - AFNetworking不缓存HTTPS请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12698581/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com