iphone - SOAP 和 REST 如何处理 XML/JSON 响应?

标签 iphone xml rest soap asihttprequest

这是关于堆栈溢出的一个非常常见的问题,我一次又一次地被问到,我读了很多关于这个的答案,但我仍然有点困惑。

我需要从 iPhone sdk 调用网络服务。

这是我的问题:

  1. 我不清楚 SOAP 或 REST 返回什么响应。是否有任何具体说明如果响应是 XML 那么我们应该使用 REST,如果响应是 JSON 我们应该使用 SOAP?

  2. ASIHTTP 与 SOAP 和 REST 的作用是什么?

  3. 如果我得到的 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&amp;a=111402&amp;m=1547&amp;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 进行移动开发,因为它的重量轻 SOAP vs REST

(简单的例子,如果我错了,人们会纠正我)

关于iphone - SOAP 和 REST 如何处理 XML/JSON 响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8599833/

相关文章:

java - AtTask API 仅返回对象上字段的子集

iphone - 在 Objective C 中实现自定义类的委托(delegate)时的引用计数

iphone - 如何获取 ABRecordRef 的所有属性的列表?

javascript - 使用javascript在IE9上获取iframe xml内容

python - 使用 lxml 解析 xml block

java - 具有现有 REST 后端的 GWT

c - 在 iPhone 上进行大量的 malloc 和 free 操作是否很慢?

ios - View 尺寸不会随 iPhone 尺寸而改变

java - 在 Java Jersey RESTful Web 应用程序中加载属性文件,以在整个应用程序中持续存在?

rest - 对于多部分数据请求,应在 Content-Type header 中使用哪个分隔符?逗号还是分号?