这是关于堆栈溢出的一个非常常见的问题,我一次又一次地被问到,我读了很多关于这个的答案,但我仍然有点困惑。
我需要从 iPhone sdk 调用网络服务。
这是我的问题:
我不清楚 SOAP 或 REST 返回什么响应。是否有任何具体说明如果响应是 XML 那么我们应该使用 REST,如果响应是 JSON 我们应该使用 SOAP?
ASIHTTP 与 SOAP 和 REST 的作用是什么?
如果我得到的 XML 响应为
<oproduct> <iid>113133791</iid> <icategoryid>270</icategoryid> <imerchantid>1547</imerchantid> <iadult>0</iadult> <sname>The Ashes / 1st Test - England v Australia - Day 1</sname> <sawdeeplink>http://www.acbcd.com/pclick.php?p=113133791&a=111402&m=1547&platform=cs</sawdeeplink> <sawthumburl>http://images.abcdd.com/thumb/1547/113133791.jpg</sawthumburl> <fprice>69.99</fprice> </oproduct>
我需要手动解析吗?或者如何处理 XML 响应?
我有很多关于 REST 和 SOAP 的文章,但没有合适的代码来理解它们。 如果您对这些问题有任何帮助,我将不胜感激。
最佳答案
SOAP - “简单对象访问协议(protocol)”
SOAP 是一种通过 Internet 传输消息或少量信息的方法。 SOAP 消息采用 XML 格式,通常使用 HTTP(超文本传输协议(protocol))发送。
所以 SOAP 有一个如何发送消息的标准。
每个 soap 网络服务都可以用 WSDL(网络服务定义语言)定义,这是一种用于传输 SOAP XML 的模式。
有许多工具可用于将 WSDL(您的网络服务定义)转换为 native 代码。
可用于 ObjC 的工具之一是 Sudz-C ( http://sudzc.com/ ),它将任何网络服务的 WDSL 转换为 ObjC 代码以访问网络服务。
Rest - 具象状态转移
Rest 是一种在客户端和服务器之间发送和接收数据的简单方法,它没有定义太多标准,您可以发送和接收 JSON、XML 甚至文本形式的数据。与 SOAP 相比,它的重量更轻。
要在 iOS 中处理 Rest,有很多可用的工具,我推荐 RestKit http://restkit.org/ ,用于同时处理 XML 和 JSON。
我建议您使用 Rest 进行移动开发,因为它的重量轻
(简单的例子,如果我错了,人们会纠正我)
关于iphone - SOAP 和 REST 如何处理 XML/JSON 响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8599833/