SOAP和REST如何使用XML/JSON响应?

Hee*_*ena 8 xml iphone rest soap asihttprequest

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

我需要从iPhone sdk调用webservices.

这是我的问题:

  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>
Run Code Online (Sandbox Code Playgroud)

我需要手工解析吗?或者我如何处理XML响应?

我收到了很多关于REST和SOAP的文章,但没有适当的代码来理解它.对于这些问题的任何帮助,我将不胜感激.

Nak*_*ran 78

SOAP - "简单对象访问协议"

SOAP是一种通过Internet传输消息或少量信息的方法.SOAP消息以XML格式化,通常使用HTTP(超文本传输​​协议)发送.

因此SOAP具有标准消息必须如何发送的标准.

可以使用WSDL(Web服务定义语言)定义每个soap Web服务,WSDL是一种用于传输的SOAP XML的模式.

有许多工具可用于将WSDL(您的Web服务定义)转换为本机代码.

ObjC可用的工具之一是Sudz-C(http://sudzc.com/),它将任何Web服务的WDSL转换为ObjC代码以访问Web服务.


休息 - 代表性的国家转移

Rest是在客户端和服务器之间发送和接收数据的简单方法,它没有定义任何标准,您可以以JSON,XML甚至Text发送和接收数据.它的轻量级与SOAP相比.

要在iOS中处理Rest,有许多可用的工具,我建议使用RestKit http://restkit.org/来处理XML和JSON.

我建议你使用Rest进行移动开发,因为它重量轻 SOAP与REST

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

  • 这太棒了. (5认同)

tac*_*cos 5

好的,所以你在这里有几个不同的问题:

  1. REST是一种访问 Web服务的方式.SOAP是访问Web服务的另一种方法.REST使用查询字符串或URL格式,而SOAP使用XML.JSON和XML是两种不同的发送数据的方式.SOAP和XML通常相互关联.对于移动应用程序,REST/JSON通常是要走的路.更易于实施和维护,更多电报等.

  2. 比尔指出,ASIHTTP是一个包装器.根据您的需要,还有其他选择可以做类似的事情.如果您正在使用REST/JSON,那么NSURLConnection+ SBJSON可能会做到这一点,我个人喜欢它.

  3. 如果您的SOAP服务具有可用的WSDL,则可以使用wsdl2objc自动构建用于解析和提取的代码.如果它是JSON服务或者没有可用的WSDL,我建议使用SBJSON并简单地按以下方式解析:

    for(repsonse中的id jsonElement){self.propertyA = [jsonElement valueForKey:@"keyA"]; self.propertyB = [jsonElement valueForKey:@"keyB"]; }

希望有所帮助!