【问题标题】:iPhone REST client [closed]iPhone REST客户端[关闭]
【发布时间】:2009-03-10 14:00:22
【问题描述】:

有没有人知道 iPhone SDK 有什么好的库来调用 REST Web 服务。我想要一些简单的东西,比如Heroku rest client


感谢大家的帮助。

我的服务器端在 Rails 上,因此 ObjectiveResource 看起来最符合我的需求。

【问题讨论】:

    标签: iphone web-services rest


    【解决方案1】:

    我建议使用来自 All-Seeing Interactive 的优秀 ASIHTTPRequest 源:http://allseeing-i.com/ASIHTTPRequest。我正在这样做,还有几个已发布的 iPhone 应用程序也是如此,因此您可以确定代码非常可靠。

    这是 CFNetwork API 的包装器,它使与 Web 服务器通信的一些更繁琐的方面变得更容易。它是用 Objective-C 编写的,适用于 Mac OS X 和 iPhone 应用程序。

    它适用于执行基本的 HTTP 请求和与基于 REST 的服务交互(GET / POST / PUT / DELETE)。 ASIFormDataRequest 子类使使用 multipart/form-data 提交 POST 数据和文件变得容易。

    【讨论】:

    • 除了这个答案获得高票外,请查看 ASI 发布的使用其框架的应用程序墙:allseeing-i.com/ASIHTTPRequest/Who-is-using-it 我今天才开始使用它,它非常简单,具有良好的文档、很多功能和开箱即用的最少编码。 /插头
    • @Blake - 顺便说一句,我知道某些东西很受欢迎并不意味着它总是最好的解决方案。我得去看看restkit。
    【解决方案2】:

    希望Andrian Kosmaczewski 的工作可以节省您重新发明轮子的时间:

    http://github.com/akosma/iphonerestwrapper/tree/master

    而且,它是公共领域。

    【讨论】:

      【解决方案3】:

      看看 RestKit:http://restkit.org/ 它提供了一个出色的 API,用于访问 RESTful Web 服务并将远程资源表示为本地对象,包括将它们持久化到 Core Data。它是完全异步的,并且具有许多其他巧妙的功能

      【讨论】:

      • 这是我本周有此需求时尝试的方法,但就其价值而言,这对我来说并不是一个好的解决方案。它非常“沉重”,甚至难以启动和运行——我现在已经花了大约四个小时,它仍然无法编译(使用 10.7.2 上的最新 XCode)。显然有些人已经让它工作了,也许一旦你克服了最初的障碍就很好了,但对我来说这不值得——我想要一些可以放入我的项目并完成的源文件它。
      【解决方案4】:

      如果您的 REST 服务是在 Ruby on Rails 中实现的,那么开源 ObjectiveResource 项目看起来很有希望。在我的一个相对复杂的项目中,它对我来说非常有用,我什至还为他们贡献了一些代码。

      ObjectiveResource

      【讨论】:

      • ObjectiveResource 的问题是缺乏异步连接支持,这基本上意味着每次调用 REST 服务时都会冻结 UI 线程。这是不可接受的恕我直言。我会远离它。
      • 请注意,ObjectiveResource 在 ConnectionManager 类提供的 1.1 分支中具有轻量级异步连接支持:github.com/yfactorial/objectiveresource/blob/1.1/Classes/lib/…
      【解决方案5】:

      我创建了一篇关于这样做的博客文章。

      http://www.dreamfreeze.net/weblog/restful_webservices.html

      【讨论】:

        【解决方案6】:

        [akosma / iphonerestwrappert] 试试这个来自 github 的包装器

        Caged / httpriot 这是一个非常简单的用于 iPhone 和 Cocoa 项目的 HTTP Rest 库。

        【讨论】:

          【解决方案7】:

          在使用直到 iOS 4 之前您必须使用的超级冗长和痛苦的委托之后,我们转向使用块来实现异步行为。它真的很棒,最近我们的代码实际上是可读的。

          我们开源了我们在这里使用的其余客户端:

          https://github.com/jeremylightsmith/RestClient

          让我们知道它对您的作用。

          【讨论】:

            【解决方案8】:

            您可以使用 iphone 上的 REST 客户端应用程序检查您的服务器响应 - http://itunes.apple.com/us/app/rest-client/id503860664?ls=1&mt=8

            这可以帮助您在服务器端调试代码。

            【讨论】:

              【解决方案9】:

              使用基于 REST 的服务确实不需要“好的库”。

              SDK 中包含的 NSURLConnection 和 NSURLRequest 是您真正需要的。

              【讨论】:

              • 你当然可以使用框架中的基本库来实现你想要的,但这并不意味着应该打折简单的高级 API。
              • 八月,我完全不同意。在 NSURL 的东西和 REST 抽象之间你必须写很多代码。 (NSURLConnection 甚至不会在缓冲区中累积字节,因为它们是从网络中传入的;所以每次使用它时都必须编写样板代码,这只是为了初学者。)
              • 使用一个体面的高级库的真正好处之一是让所有高级样板代码远离您的主要应用程序逻辑。 NSURL 和 NSURLConnection 可能很麻烦,一旦您开始考虑生产,您将需要保持解析等脱离主线程以提高性能。好的框架可以简化这些常见任务。
              猜你喜欢
              • 1970-01-01
              • 2011-06-25
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多