过去我使用ASIHTTPRequest
,但现在有NSURLRequest
。我们现在应该使用NSURLRequest
吗?有什么缺点吗?
对于现在阅读此内容的人:我最终使用了答案中提到的AFNetworking
https://github.com/AFNetworking/AFNetworking
谢谢,
答案 0 :(得分:35)
NSURLConnection
和NSURLRequest
是用于管理连接的Cocoa类。在iOS 7中,Apple添加了NSURLSession
。
但我认为你会发现AFNetworking
是一个进一步简化网络请求(特别是复杂的HTTP请求)的框架。如果您出于任何原因不想使用第三方框架,可以直接使用NSURLConnection
和/或NSURLSession
。它只需要更多的编码。
如果您正在寻找一个好的ASIHTTPRequest
替代方案,AFNetworking
是一个很好的候选人。
有关NSURLConnection
和NSURLSession
的信息,请参阅URL Loading System Programming Guide。
答案 1 :(得分:20)
NSURLRequest
一直存在(参见doc),所以它并不是新的。 ASIHTTPRequest
已停止使用,last update已于2011年5月15日停止,因此您不应使用它。 AFNetworking是一个令人愉快的iOS和Mac OS X 网络库,正如他们self所描述的那样,真的让你的生活更轻松,在我的情况下,它是我在网络中包含的第一个框架项目
你应该使用哪一个?,我认为这取决于你的要求,NSURLRequest
和NSURLConnection
你可以做任何事情,事实上AFNetworking 我们建立在NSURLConnection之上。但是我之前告诉你的是,AFNetworking有我的支持。
编辑iOS7后
如果你的目标是iOS7,你应该看看NSURLSession,查看official documentation和tutorial。
编辑Swift
看看Alamofire项目在Swift中完成的实现,它也是由mattt(AFNetworking的主要作者)创建的。
答案 2 :(得分:7)
asihttprequest是过时的库,现在不支持开发。不要使用它。
NSURLRequest是要使用的默认iOS(可可)类。我推荐它用于非常少的用法,因为你需要编写大量代码来处理连接响应。 最重要的是构建所有http库。
AFNetwoking现在是http,imho的标准。它使用块进行回调,它支持不同类型的数据json,xml等。它设计得很好,可以很容易地进行子类化。这是最好的。
答案 3 :(得分:1)
原生(NSURLSession)与AFNetworking或任何其他图书馆。
我建议您使用NSURLSession,因为它会在app端为您提供大量自定义功能。最近我正在开发一个项目,我必须在应用程序中使用多部分表单数据。我必须向后端人员提供我的请求主体,我确实使用AfNetworking记录器来打印我的身体,但它没有帮助我。所以我确实搬到了可可原生图书馆并得到了我的解决方案。
所以我建议你使用iOS原生网络,因为它为你提供了很多自定义功能,但是如果你需要更少的代码,那么你可以使用任何第三方库。