我们是不是应该考虑从 AFNetworking 过渡到 NSUrlSession? [关闭]

Posted

技术标签:

【中文标题】我们是不是应该考虑从 AFNetworking 过渡到 NSUrlSession? [关闭]【英文标题】:Should we consider transitioning from AFNetworking to NSUrlSession? [closed]我们是否应该考虑从 AFNetworking 过渡到 NSUrlSession? [关闭] 【发布时间】:2014-12-02 13:57:47 【问题描述】:

我一直在使用AFNetworking,但最近听说NSUrlSession 提供与AFNetworking 相同的功能,因此无需使用AFNetworking。大多数情况下,我对这些功能感兴趣,例如操作、客户端和惰性图像下载器,但是,不确定我需要编写多少额外的代码。有人从AFNetworking 过渡到NSUrlSession 吗?

【问题讨论】:

【参考方案1】:

NSURLSession 没有重现 AFNetworking 的所有丰富性(特别是复杂 HTTP 请求的构造和响应的简化解析)。因此,如果您正在利用 AFNetworking 的这些功能,那么您可能希望继续使用 AFNetworking。

不过,对于目前使用NSURLConnection程序员NSURLSession 提供了一些不错的增强功能。 NSURLSession 的基于块的方法比 NSURLConnection 提供的更丰富。此外,NSURLSession 提供后台会话功能,即使应用程序未运行,也允许继续请求。

对于使用AFHTTPRequestOperationManager(基于NSURLConnection)的AFNetworking 开发人员,AFNetworking 现在提供AFHTTPSessionManager,这是一个非常相似的接口,在内部利用NSURLSession(但奇怪的是,不是基于NSOperationQueue) .因此,如果您想通过 AFNetworking 享受一些 NSURLSession 功能,请考虑使用 AFHTTPSessionManager 而不是 AFHTTPRequestOperationManager

【讨论】:

【参考方案2】:

AFNetworking 是在 NSUrlSession 之上编写的,因此没有理由放弃它,除非你想处理 AFNetworking 已经为你处理的所有实现细节,甚至更多到它已经被成千上万的用户测试过日常基础因此是一个相当稳定和成熟的库。

【讨论】:

【参考方案3】:

我不使用它,因为我知道原生 NSUrlConnection 和 NSUrlSession 的内部工作原理,但是对于大多数人来说,AFNetworking 2.X 更容易使用。我不是 AFNetworking 1.X 的粉丝,这就是为什么我在 2.X 可用之前就自己深入研究它的原因。

【讨论】:

以上是关于我们是不是应该考虑从 AFNetworking 过渡到 NSUrlSession? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

对磁盘的 afnetworking 缓存请求

缓存策略,AFNetworking

使用 AFNetworking 异步下载图像后,是不是可以从 UIImageView 获取图像

直接从 AFNetworking 获取 NSData,而不是让它转换为 UIImage

从 AFNetworking 检索错误响应

如何使用 AFNetworking 在 iPhone 模拟器中通过 *** IP 地址进行连接?