我确实意识到这个问题似乎是众所周知的,但是由于我没有使用SOAP Web服务的丰富经验,并且据我所知,这在iOS尤其是OS X上不是很常见,所以我会问它再次。

我尝试了wsdl2objc和sudzobjc,这两种解决方案似乎都非常复杂。我感觉到也有很多开销,尤其是在定义所有这些类型和使用指针的情况下。

如果将此与仅使用标准可可类NSURLConnection和NSXMLParser进行比较,如本例所示:

http://abhicodehelp.blogspot.com/2010/12/handling-soap-with-iphone.html

就像使用RESTful Web服务时一样,感觉就像是过分地...

我希望有人能给我一个提示,为什么这种更完整的方法更好,并且使用至少看起来乍一看又更轻松易用的任何其他C或C ++库不是更好吗?

最佳答案

SOAP的问题在于它确实非常膨胀!它称为简单对象访问协议,但绝非简单。它基于XML,在WSDL和XMLSchemes以及所有其他东西中都使用了所有的复杂性。我是在Java发明之初就开始使用SOAP的。由于XML消息的大小,我们多次遇到OutOfMemoryExceptions。

就是说:使用Objective-C调用SOAP服务将与使用Java或任何其他语言一样复杂。问题是您需要创建相当(甚至非常)复杂的XML结构来调用服务。我知道wsdl2java,这有所帮助,但是它创建了很多类,抽象和东西。

我了解WSDL和SOAP中使用的所有XMLSchema背后的思想。这是为了创建服务及其规范,以便其他人可以毫无问题地调用它。但是我不认为这是这样做的方式。

如果您有选择,请选择REST! REST是真正的“简单对象访问协议”,因为它确实很简单。它也可以使用XML作为消息格式,即使您不想这样做也是如此。带有JSON的REST是必经之路。您只需要了解HTTP即可了解REST,恕我直言。

关于ios - wsdl2objc和类似的SOAP客户端生成器真的是iOS和OS X的最佳选择吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8709623/

10-09 21:21