Nic*_*oft 4 xml iphone rest soap objective-c
我们将建立一个iPhone从服务器请求数据的解决方案.我们可以选择决定采用何种解决方案,我们不确定要走哪条路.
关于SOAP我认为我有答案,没有真正稳定的解决方案(我知道有解决方案,但我想要稳定的东西).
REST怎么样?
或者只是创建我们自己的XML更好?它不会是如此复杂的reguest/respons-flow.
提前致谢!
我已经为iPhone OS 3.0创建了一个开源应用程序,它展示了如何在iPhone应用程序中使用REST和SOAP服务,使用XML(使用8个不同的iPhone库),SOAP,JSON(使用SBJSON和TouchJSON),YAML,协议缓冲区(谷歌序列化格式)甚至来自PHP示例应用程序的CSV(包含在项目中).
http://github.com/akosma/iPhoneWebServicesClient
该项目模块化,足以支持未来的许多其他格式和库.
SlideShare中的以下演示文稿显示了我在性能,易于实施和有效负载特性方面的发现:
http://www.slideshare.net/akosma/web-services-3439269
基本上我发现,在我的测试中,Binary Plists + REST + JSON和XML + TBXML库是"最佳"选项(意思是:易于实现+反序列化速度+最低有效负载大小).
在Github项目中有一个"结果"文件夹,其中包含Excel表格,总结了调查结果(以及所有原始数据).您也可以自己在3G或wifi中启动测试,然后将结果邮寄给自己进行比较和研究.
希望能帮助到你!
REST是要走的路.有SOAP解决方案,但考虑到最终使用SOAP完成所有人都可以使用RESTful服务完成,根本不需要开销(SOAP调用为XML包络内的数据包装XML,也必须解析).
使REST成为一种方法的好处在于它充分利用了HTTP协议,不仅用于获取数据,还用于发布(创建)或删除事物.HTTP具有针对所有这些问题定义的标准消息,以及用于引导的合适的身份验证模型.
由于REST只是HTTP调用,因此您可以选择最符合您需求的数据传输方法.如果您愿意,可以发送/接收XML,尽管JSON更易于解析且发送更小.Plists是另一种流行的格式,因为你可以发送更丰富的数据类型,它比JSON稍微更结构化,尽管从服务器端你通常必须找到库来创建它.
许多人使用JSON但要注意它在解析时非常挑剔 - 在一行开头弄乱一个字符,或者意外地在那里获取字符串而不转义"'"字符并且可能存在问题.