2013 年的 ASIHTTPRequest 和 AFNetworking。选择啥? [关闭]

Posted

技术标签:

【中文标题】2013 年的 ASIHTTPRequest 和 AFNetworking。选择啥? [关闭]【英文标题】:ASIHTTPRequest and AFNetworking in 2013. What to choose? [closed]2013 年的 ASIHTTPRequest 和 AFNetworking。选择什么? [关闭] 【发布时间】:2013-09-03 15:14:39 【问题描述】:

我正在开发一个基于网络的大型 ios 项目。我很感兴趣我现在应该选择什么框架。 我看到很多关于它的帖子:ASIHTTPRequest vs AFNetworking framework 等等。但他们都老了。我也读到了这个:http://allseeing-i.com/%5Brequest_release%5D; After giving it a lot of thought over the last few weeks, I’ve decided that I’m not going to continue working on ASIHTTPRequest in future. 它是在 2011 年写的。所以据我所知 ASIHTTPRequest 已经过时了吗?我在iOS方面没有太多经验。所以我对什么是现代事物状态很感兴趣。哪个更好 - ASIHTTPRequestAFNetworking?我对以下标准感兴趣:

    JSON 性能(与NSJSONSerialization 集成) 丰富的 API(上传文件、http 查询) 简单 iOS 6 和未来的 iOS 7 集成

【问题讨论】:

AFNetworking 是当今的标准。 @DanFairaizl “标准”是一个强有力的称谓。我觉得不合适。 “可行的选择”会更好。还有其他几个可行的开源网络库可用,大公司——很可能还有更小的公司——也实施了自己的。 @CouchDeveloper,我知道这样说很有说服力,但如今使用该库的项目和开发人员太多了。您只是不会经常看到替代方案,因此 AFNetworking 是一种适用于 iOS 的“标准”网络库。只是我的看法可能...... 【参考方案1】:

我将保持简短,以免重复这一点。我已经使用 ASIHTTP 和 AFNetworking 完成了许多 iOS 应用程序。

我现在不再使用 ASIHTTPRequest,原因如下:

这是一个休眠项目,没有人在开发或维护它。 它尚未升级为使用 ARC(自动引用计数),因此很明显,当您必须使用 -fno-objc-arc 的编译器开关进行构建时,您正在嵌入遗留代码。 尚未更新以使用块,这会使开发回到较旧的设计模式。

AFNetworking 对于您的大多数标准都是不错的选择,原因如下:

AFNetworking 并未处于休眠状态,并且正在积极参与其中。 (如果 ASIHTTPRequest 添加了更多文件处理,这是一个接替 ASIHTTPRequest 的好地方) JSON 性能 - 它确实与 NSJSONSerialization 集成并自动为您反序列化 json REST 请求。 API 非常干净且易于使用(使用块,因此您的代码也会更干净)但是,我建议使用其他东西进行文件下载和上传,尚不知道一个好的标准解决方案. 简单,是的,非常简单。 在 iOS 6 和 7 上使用它没有问题,最近刚刚在一个项目中使用它,它已为 iOS 7 做好准备。

希望这会有所帮助。

【讨论】:

你的观点没有说服力——可能是因为我知道图书馆,而且你的观点基本上是基于意见的。而且我有不同的看法——关于“简单性”、代码质量、“JSON”(这根本不是论据——它的 JSON,而不是网络);) 只是回答这个问题,如果你再读一遍,清楚地询问 AFNetworking 所做的“JSON 性能(与 NSJSONSerialization 集成)”。基本上,ASI 赢得了 API 的丰富性,但 AF 赢得了海报提到的所有其他标准。在我看来。【参考方案2】:

由于以下原因,我更喜欢 ASIHTTPRequest 而不是 AFNetworking。

如果您的应用程序执行繁重的上传操作,例如多个图像/视频。 它会直接从您的磁盘流式传输文件,我们只需指定文件的路径并启动上传过程。 它会限制带宽。 它有多个代表对上传进度状态进行回调。 拥有处理多个请求的管理良好的队列。

【讨论】:

以上是关于2013 年的 ASIHTTPRequest 和 AFNetworking。选择啥? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

未调用 ASIHTTPRequest setDidFailSelector

ASIHttpRequest - 移动到实时 PHP 服务器后不创建临时文件

ASIHTTPRequest vs AFNetworking vs NSUrlRequest

NSOperationQueue 和 ASIHTTPRequest

ASIHTTPRequest类库简介和使用说明

ASIHTTPRequest 和 userInfo