RESTKit是ASIHTTPRequest的良好替代品吗?

14

我目前已经使用 ASIHTTPRequest 相当长一段时间并且非常满意。然而由于其已被弃用,我正在考虑替换它。我的第一个想法是使用 NSURLConnection,但我发现 ASIHTTPRequest 实际上做了很多事情。例如,我喜欢它的队列处理。

我正在开发的iPhone应用程序使用REST API,因此我一直在考虑使用 RESTKit。是否可能在不使用 Core Data 的情况下使用 RESTKit?因为我有纯数据对象,我现在不想使用Core Data。

除了 ASIHTTPRequest,还有其他好的替代方案吗?

顺便说一句,我知道有一个类似的 问题,但这个问题更具体。


2
http://allseeing-i.com/%5Brequest_release%5D ASIHTTPRequests的作者提供了一些选择。个人而言,我喜欢AFNetworking。 - vikingosegundo
AFNetworking有哪些好处? - Johan Karlsson
有没有关于AFNetworking的好教程? - Johan Karlsson
完全是为了自己方便,但我编写了这些类来替换 ASIHTTPRequest 的 GET 和 POST 部分。https://github.com/tonymillion/TMHTTPRequest - Tony Million
Tony Million;我会查看你的类。你在我写评论时也写了你的评论。 - Johan Karlsson
3个回答

26

我认为AFNetworking是一个不错的解决方案。

优点:

  • 轻量级
  • 文档齐全
  • 安装简便,只需将源代码复制到项目中即可。
  • 易于使用。
  • UIImageView拥有出色的分类功能,可在后台加载图标。

缺点:

  • 无法设置请求超时时间。(适用于v0.9.0)

3
+1 AFNetworking可在MacOS和iOS上使用,因此一个学习曲线可以获得更多的平台优势。 - Anand
3
AFNetworking比RestKit更容易、更干净地正确运行,我确定在某些情况下需要使用RestKit,但对于那些只是想进行一些相当基本的Web服务通信的人来说,AFNetworking是更好的选择。 - David Hay
1
RestKit即使你想使用Core Data也是过度杀伤力的(我不得不在多个应用程序中使用它,远离它)。<3 AFNetworking <3 Alamofire - aryaxt

7
我可以强烈推荐RestKit,我经常使用它!它为您处理常见的事情,不,您不必使用Core Data,RestKit可以与之一起使用,但这只是一个很好的功能。 使用RestKit的一个好的起点是Github上的维基页面
RestKit依赖于AFNetworking作为网络框架。如果RestKit似乎过于复杂,请尝试仅使用此框架。

我没有按照自己想要的方式使RestKit工作。出现了很多问题,最终它并没有正常工作。 - Johan Karlsson
处理RestKit不应该引起任何问题 - 如果有问题,那么您可能误解了一些概念。您可以提供一些详细信息(您想要做什么,出了什么问题)来解决使用RestKit时遇到的问题。 - tilo
有一些缺失的功能。例如,对象映射并没有处理我们当前实现所需的所有特殊情况。还尝试过在没有对象映射的情况下使用RestKit,但遇到了其他问题,比如应用程序卡住。我已经在RestKit的谷歌讨论组中讨论了这些问题。我花了很多天时间来让RestKit正常工作。我没有时间等待。所以我被迫尝试另一种解决方案。我必须指出,我认为RestKit是一个很好的库。但对我来说,它还不够成熟。我会继续关注RestKit并再次尝试。 - Johan Karlsson
1
对于某些人来说,RestKit可能比AFNetworking更好的解决方案。但我最终选择了使用AFNetworking。我只是想在这里诚实。 - Johan Karlsson
1
我将这个答案放回来,因为我的问题实际上是关于RestKit作为ASIHTTP的替代品。但是正如提到的那样,AFNetworking和当前的实现更匹配。 - Johan Karlsson
只是想插嘴说一声,RestKit 对我在各种开发应用程序中非常有帮助。学习曲线确实有点陡峭,但是一旦你克服了那个难点,它会让你在更短的时间内开发功能强大的应用程序,同时大量减少你的代码库。有时候会遇到一些映射问题,但我认为这往往是由于所消耗的 API 的结构问题而不是 RestKit 的问题。和 SDWebImage 一起使用,它是一个非常强大的工具集。 - Marky

0
尝试使用BYRequest: BYRequest基于MKNetowrkKit,但它的工作方式类似于ASIHttpRequest,因此您可以轻松地将项目从ASIHttpRequest迁移到BYRequest,并且还可以享受ARC。 https://github.com/BoydYang/BYRequest

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接