代码之家  ›  专栏  ›  技术社区  ›  Nicsoft

soap、rest或xml for objective-c/iphone vs.服务器解决方案

  •  4
  • Nicsoft  · 技术社区  · 16 年前

    我们将建立一个解决方案,让iphone从服务器请求数据。我们可以选择制定什么样的解决方案,但我们不确定该走哪条路。

    关于soap,我想我已经找到了答案,没有真正稳定的解决方案可以做到这一点(我知道有解决方案,但我希望有稳定的解决方案)。

    休息一下怎么样?

    还是创建自己的xml更好?它不会是如此复杂的调节/响应流程。

    提前谢谢!

    6 回复  |  直到 16 年前
        1
  •  3
  •   Claus Broch    16 年前

    你并不是说你的数据结构有多复杂,以及你是否真的需要状态处理。

    如果您希望将网络流量保持在最低限度,同时仍然保留xml的一些结构化特性,那么您可以看看 JSON . 它是一个非常轻量级的数据封装框架。 例如,有一些可用于iphone的实现 TouchJSON

    克劳斯

        2
  •  8
  •   Adrian Kosmaczewski    16 年前

    我为iphone os 3.0创建了一个开源应用程序,它展示了如何在iphone应用程序中使用rest&soap服务,使用xml(使用8个不同的iphone库)、soap、json(使用sbjson和touchjson)、yaml、protocol buffers(google序列化格式)甚至csve app(包含在项目中)。

    http://github.com/akosma/iPhoneWebServicesClient

    该项目的模块化程度足以支持将来的许多其他格式和库。

    以下幻灯片演示显示了我在性能、易实现性和负载特性方面的发现:

    http://www.slideshare.net/akosma/web-services-3439269

    基本上,在我的测试中,我发现二进制plist+rest+json和xml+tbxml库是“最佳”选项(意思是:易于实现+反序列化速度+最低负载大小)。

    在github项目中有一个“results”文件夹,其中有一个excel表,总结了结果(以及所有原始数据)。你也可以自己在3g或wifi上启动测试,然后将结果邮寄给自己进行比较和研究。

    希望有帮助!

        3
  •  7
  •   Kendall Helmstetter Gelner    16 年前

    休息是条路。有一些soap解决方案,但是考虑到所有使用soap的人都可以使用restful服务来完成,因此根本不需要开销(soap调用将xml包装成xml信封中的数据,还必须对其进行解析)。

    使rest成为一种很好的方法的原因是它充分利用了http协议,不仅用于获取数据,还用于发布(创建)或删除内容。http为所有这些问题定义了标准消息,并且有一个像样的身份验证模型可以引导。

    因为rest只是http调用,所以您可以选择哪种数据传输方法最适合您的需要。如果愿意,可以发送/接收xml,不过json更容易解析,发送也更小。plist是另一种流行的格式,因为您可以发送更丰富的数据类型,而且它的结构比json略为复杂,尽管从服务器端通常需要找到库来创建它。

    许多人使用json,但要注意,解析时非常挑剔——在一行开头弄乱一个字符,或者在不转义“'”字符的情况下意外获取字符串,可能会出现问题。

        4
  •  5
  •   Taum    16 年前

    XML属性列表(PLIST)也是在Cocoa中序列化数据的常用方法。从其他语言生成也很简单,而且有一些好的库存在。

        5
  •  2
  •   Barry Wark    16 年前

    我将使用简单的http。 NSURLConnection 在cocoa库中,这非常简单。googletoolboxformac也有几个类来帮助解析url编码的数据。

        6
  •  0
  •   Johnathan Kanarek    9 年前

    我认为很明显rest是新的服务器通信之王,您肯定应该使用rest,问题应该是什么rest methodology 你应该使用什么编码语言,在我的 post 对于C服务器、PHP、Java和NoDE.JS中的REST服务器,我提出了一些非常简单的实现。