ASIHTTPRequest vs AFNetworking vs NSUrlRequest

Posted

技术标签:

【中文标题】ASIHTTPRequest vs AFNetworking vs NSUrlRequest【英文标题】: 【发布时间】:2013-03-30 13:20:57 【问题描述】:

过去我使用ASIHTTPRequest,但现在有NSURLRequest。我们现在应该使用NSURLRequest 吗?有什么缺点吗?

对于现在阅读本文的人:我最终使用了答案中提到的AFNetworking

https://github.com/AFNetworking/AFNetworking

谢谢,

【问题讨论】:

不理解投反对票... ASIHTTPNetworking 不再受支持且不应使用 (IIRC)。我倾向于使用 NSURLRequest 和 NSURLConnection 等来建立自己的网络...... 我没有在 NSURL* 中获得块,所以我使用 afnetworking 加上它的 uiimageview 类别是糖使用..ASIHTTP 在 iPod1+ios6 组合中出现问题根本不起作用 【参考方案1】:

NSURLConnectionNSURLRequest 是提供的用于管理连接的 Cocoa 类。在 iOS 7 中,Apple 添加了NSURLSession

但我认为您会发现AFNetworking 是一个进一步简化网络请求(尤其是复杂的HTTP 请求)的框架。如果出于任何原因不想使用第三方框架,可以直接使用NSURLConnection 和/或NSURLSession。它只需要更多的编码。

如果您正在寻找一个好的ASIHTTPRequest 替代方案,AFNetworking 是一个很好的选择。

有关NSURLConnectionNSURLSession 的信息,请参阅URL Loading System Programming Guide。

【讨论】:

【参考方案2】:

NSURLRequest 从 iOS2.0 开始就已经存在(参见doc),所以它并不是全新的。 ASIHTTPRequest 已停产,last update 已于 2011 年 5 月 15 日发布,因此您不应使用它。 AFNetworking 是一个令人愉快的 iOS 和 Mac OS X 网络库,正如他们 self 所描述的那样,它确实让您的生活更轻松,在我的情况下,它是我包含在我的网络所需项目中的第一个框架。

你应该使用哪一个?,我认为这取决于你的要求,NSURLRequestNSURLConnection 你可以做任何事情,事实上 AFNetworking 我们建立在 NSURLConnection 之上。但是我之前告诉过你,AFNetworking 有我的支持。

编辑发布 iOS7

如果你的目标是 iOS7,你应该看看 NSURLSession,检查official documentation 和这个tutorial。

为 Swift 编辑

查看Alamofire 项目,了解使用 Swift 完成的实现,它也是由 mattt(AFNetworking 的主要作者)创建的。

【讨论】:

适用于 Switch 还是适用于 Swift?另外,为什么我应该选择使用 Alamofire 而不是现有的库?我真的关心它是用 Swift 编写的吗?! @AlexSmith 感谢您的更正,已修复;-)。抱歉耽搁了,但我完全离线【参考方案3】:

asihttprequest 是过时的库,现在不支持开发。不要使用它。

NSURLRequest 是默认使用的 iOS (cocoa) 类。我建议很少使用它,因为您需要编写大量代码来处理连接响应。 最重要的是构建所有 http 库。

AFNetwoking 现在是 http 的标准,恕我直言。它使用块进行回调,它支持不同类型的数据 json、xml 等。它设计得很好,可以很容易地被子类化。这是最好的。

【讨论】:

【参考方案4】:

Native (NSURLSession) vs AFNetworking 或任何其他库。

我建议您使用 NSURLSession,因为它为您在应用端提供了很多自定义功能。最近我在做一个项目,我必须在应用程序的某些地方使用多部分表单数据。我必须向后端人员提供我的请求正文,我确实使用 AfNetworking 记录器来打印我的正文,但这对我没有帮助。所以我确实搬到了可可原生库并得到了我的解决方案。

所以我建议您使用 iOS 原生网络,因为它为您提供了很多自定义功能,但如果您需要更少的代码,那么您可以使用任何 3rd 方库。

【讨论】:

以上是关于ASIHTTPRequest vs AFNetworking vs NSUrlRequest的主要内容,如果未能解决你的问题,请参考以下文章

ASIHttpRequest 可达性版本

ASIHttpRequest 调用 Restful Web 服务?

异步添加图像 - ASIHTTPRequest

IOS-网络(ASIHTTPRequest的使用简介)

IOS开发 REST请求 ASIHTTPRequest用法

覆盖 ASIHTTPRequest 的方法