一个好用的C++ SOAP库

34

在C++中,SOAP开发的替代方案有哪些?您更喜欢哪一个并且是最受支持/现代化的?

6个回答

17

看看Apache Axis。这是我最喜欢的SOAP实现方式。它做得很好!适用于C++和Java。
http://ws.apache.org/axis/
并且以 Apache基金会 最佳传统,它是 免费开源 的。
所以, 尽情享受吧!


1
Axis支持异步查询吗? - Sean Edwards
8
我建议您查看Axis2/C - 这是Axis2架构的C语言版本,比Axis1更加灵活。请参见http://ws.apache.org/axis2/c/。 - Andrew Borley
10
Apache的链接仍然有效,但是似乎没有一个下载镜像站点能够使用。有人知道Axis是否仍然得到支持/可用吗?看起来是否定的。 - Ampers4nd
我不建议您使用Axis...该项目似乎已经停滞不前,当您发现一个bug时,您将不得不自己解决它(我们曾遇到代理/HTTPS问题和偶尔的崩溃)。最好找到一个构建SOAP消息的库,并使用系统API(例如:Windows上的WININET)自己发送请求。 - Gyum Fox

8
我之前为一个项目需要进行SOAP调用,而我找到的唯一可接受的解决方案是GSOAP。
它支持C和C++代码,但使用C++更加美观易懂。虽然它可以正常工作,但与我们的WCF Web服务不兼容,这意味着我们必须手动编辑自动生成的源代码。 http://www.cs.fsu.edu/~engelen/soap.html

7
gSOAP是GPL,所以可能不是最好的选择。 - ghord
2
我已经使用gsoap几年了,我可以告诉你,旧版本的gsoap直到2.7.x版本都是在商业友好的MPL许可证下授权的,适用于gsoap库和soapcpp2工具,但是wsdl2h工具和生成的代码在所有过去和最近的gsoap版本中都是GPLv2,因此您可能需要专有许可证。2.8.x版本还将新的soapcpp2工具包括在GPLv2和专有许可证之下。顺便说一句,我的经验是,您获得的专有许可证支持非常出色。 - Dr. Alex RE

6

我之前偶然发现了gsoap,但我并不是它的忠实粉丝,因为它的接口和代码生成器都让我感到不太满意。另外,据我所记,它的文档也相当缺乏(或者说格式非常难以理解)。

不过,在不久的将来,这个库可能会添加sockets支持。至少,在一段时间前,我向开发者提出了这个建议,他似乎认为这是个好主意,几个月后API中出现了一个XML解析器。我非常喜欢这个库,如果它不是GPL,我肯定会更多地使用它。


6

5

3

SmartWin++有一个名为SmartSOAP的侧项目,它非常不错。它拥有完整的堆栈,从SocketStream开始,一直到HttpRequest/Response对象。它具有一个小型(工作量适中)的XML DOM类抽象,并支持SOAP。它甚至带有一个WSDL解析器,可为您创建代理类。它大量使用模板和STL,并且是非常棒的C++代码。它可以在Windows Mobile上使用...

虽然它并不非常丰富,没有SSL等功能。但由于代码是纯艺术,我想你很容易理解并扩展它...

许可证是New BSD...

免责声明:我实现了它...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接