[IOS]AFNetwork会导致网络缓存

最近使用了AFN框架进行http访问,但是发现content-type是text/plain的返回时,内容并没有更改,仍旧是旧内容.

于是判断是AFN导致了缓存.

解决办法是加上强制缓存清除:

[[NSURLCache sharedURLCache] removeAllCachedResponses];

参考: https://www.jianshu.com/p/609d04617dd5

无意间看到,收藏一下:
网络正常的情况下,如果服务器宕机或者数据库出错,会造成访问服务器报错的情况,一般报错的内容是:无法连接到服务器或者其它错误。且服务器 修复后,仍然报错。经过排查,终于找出了原因所在:AFNetworking会将Url的Response缓存,方便离线浏览。而且这是默认存在的,无论 是1.x还是2.x版本都存在。

问题就出在这,一旦Response被缓存后,下次不再重复发起连接,将直接将同样地Response返回,也就是说:网络正常的情况下,服务 器出错,一旦服务器出错的Response被缓存,就算服务器紧急修复后,也有可能造成iOS客户端持续报错。这种情况将是致命的。

解决方案:
幸运的是,AFNetworking利用的系统自有类存储,我们可以修改其源代码:
[[NSURLCache sharedURLCache] removeAllCachedResponses];

 

**补充,即使加上清缓存这个方法,也不能解决没有网络也能call url的问题,只能在外面包一层网络状态判断

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值