我计划为iPhone开发一个应用程序,该应用程序必须访问几个SOAP服务。虽然在iPhone SDK中做了一些基本的检查,但我无法找到任何对访问SOAP服务的支持,稍微搜索一下就得出结论,iPhone SDK中没有对SOAP的支持。
因此,如果我真的想构建这个应用程序,我就需要提出一种从iPhone访问SOAP服务的方法。最好的办法是什么?有什么最佳做法吗?是否有人已经使用iPhoneSDK中提供的功能编写了一个库来访问SOAP服务?
(由于我需要访问的服务是由另一方公开的,并且他们只将其公开为SOAP,因此不幸的是,无法切换到另一种类型的接口(例如,基于REST的API)。
热罗
7条答案
按热度按时间oxosxuxt1#
一个字:不要。
好吧,显然这不是一个真实的的答案。但是SOAP仍然应该不惜一切代价避免。;-)是否可以在iPhone和Web服务之间添加代理服务器?也许是将REST转换为SOAP的东西?
您可以尝试CSOAP,这是一个依赖于libxml 2(包含在iPhone SDK中)的SOAP库。
我已经为OSX写了自己的SOAP framework。但是,它并没有被积极地维护,并且需要一些时间来移植到iPhone上(首先,您需要用TouchXML替换NSXML)
9o685dep2#
我的解决方案是让代理服务器接受REST,发出SOAP请求,并使用PHP返回结果。
实施时间:15-30分钟。
不是最优雅,但坚实。
0mkxixxg3#
我一直在低级别(XML生成和解析)上滚动自己的访问,以处理偶尔需要从Objective-C执行SOAP样式请求的情况。也就是说,有一个名为SOAPClient(soapclient)的库,它是开源的(BSD许可),可以在Google Code(mac-soapclient)上使用,这可能会引起人们的兴趣。
我不会证明它的能力或有效性,因为我从来没有使用过它,也没有使用过它的API,但它是可用的,可能会根据你的需要为你提供一个快速的解决方案。
苹果曾经有一个非常糟糕的实用程序,叫做WS-MakeStubs。我不认为它在iPhone上可用,但你可能也会对一个旨在取代它的开源库感兴趣--代码生成出Objective-C,用于与SOAP客户端交互。再说一次,我没有用过它,但我在笔记里记下来了:wsdl2objc
tjvv9vkg4#
您可以使用我找到的工具http://www.wsdl2code.com进行连接
jyztefdp5#
这里有一个swift 4示例代码,使用SOAP服务格式执行API调用。
xmd2e60i6#
看看here this link和他们的路线图。他们有RO| C正在开发中,并且可以连接到他们的Web服务,其中可能包括SOAP(我使用的VCL版本肯定包括它)。
8ulbf1ek7#
看看gsoap,它在ios_plugin下的下载包中包含了两个iOS示例。该工具将WSDL转换为SOAP和XMLREST的代码。