[iPhone和Web服务]:REST与SOAP

Mau*_*ury 12 iphone rest soap web-services web-applications

我开始了我的学位项目,一个适用于iPhone,Android和(在不久的将来)Symbian的移动应用程序.服务器体系结构如下:

  • 网站("标准"用户);
  • Web服务(用于移动连接),基于TomCat和Axis2;
  • mySQL DB用于存储用户数据.

通过网络浏览,我已经阅读了很多关于iPhone和Web服务之间交互的讨论,我要说的是我不清楚我能做什么和不做什么.让我们从用于从数据库中检索数据的协议开始:Android端应用程序使用SOAP协议,我可以用iPhone做同样的事情吗?有一些限制或问题吗?

我还读过使用REST而不是SOAP,是否可以使用上述服务器架构?哪些是主要优点/缺点?

对不起,如果这些问题听起来像"n00b",但这是我第一次使用iPhone的真实体验,而网上发现的大量信息让我心烦意乱,我很害怕感到困惑.请原谅我的任何错误.

Ken*_*ner 10

SOAP对移动通信来说太沉重了.为什么要在另外的XML层中包装请求的所有工作都必须解析?您发送的数据超出了您的需要,并且会给客户端和服务器带来更大的CPU负担.

使用REST.如果您正在进行跨平台项目,JSON会生成一个很好的有效负载容器,否则plists可以很好地从服务器发送数据.

  • 但这只是另一层,并没有消除SOAP的不良包装性质.SOAP的真正问题在于,您最终在协议(HTTP)之上使用它,该协议已经具有使用SOAP执行任何操作的功能(特别是对于大多数库支持的SOAP子集).相当于Fast Infoset的休息就是在服务器上打开GZIP压缩,双方都不做其他事情.是的,SOAP也可以用于其他协议,但实际上,99%的小型设备访问Web服务时几乎都没有. (2认同)

Pab*_*ruz 4

绝对可以在 iPhone 上执行SOAP 。这是关于该主题的一个很好的教程。毕竟,SOAP是基于HTTP 的协议,并且您拥有在 iPhone 上执行HTTP所需的所有库。

话虽如此,RESTful API比SOAP更简单,因此您可能需要考虑它们。它们也是基于HTTP的,因此您在 iPhone 上执行此操作不会遇到任何问题。在服务器端,如果您使用 Java,则必须使用JAX-RS来实现该部分。

希望能帮助到你。