哪个Linux C/C++ SOAP库比较好?需要非常轻量级的推荐。

9
我需要在应用程序中进行一个SOAP over HTTP请求。除了HTTP之外,没有其他的传输方式,我只需发送请求并处理响应。由于只有一个请求,所以我不需要一个从WSDL生成C++代码的东西,只需要一些API来构建请求。
这将在一个CPU和内存受限的系统(arm)上运行,而且通常在支持库方面存在问题。
我可以使用普通的C或C++,我有某种类型的(也是受限制的)STL,但没有太多其他东西,而且我不想添加太多兆字节的库。
我在目标平台上有libxml2(不确定它是否有任何关联,但我是一个SOAP新手)。
当然需要在gcc/linux上编译。我可以处理任何x86->arm转换异常情况。
由于许可和大小的原因,gSOAP不是一个选择。
一些搜索引擎把我带到了http://simplesoap.sourceforge.net/,但我想听听其他的建议,然后再深入研究。
那么,还有什么建议吗?谢谢。


simpleSOAP不能与现代gcc一起编译(例如:error: taking address of temporary [-fpermissive])。我可能可以修复它,但不值得为了一个请求这么做。
所以...手动操作吧...


1
你有检查过 cpp-netlib 吗?http://cpp-netlib.github.com/ - Arunmu
@ArunMu:好链接,我不知道这个,谢谢! - neuro
@Torp:好问题(+1)! 简单的SOAP看起来不错。我已经回答了一个提出另一种选择的答案。 - neuro
@ArunMu 点赞了,因为我之前也不知道那个库,但它只支持 http - 我已经有 curl 了。 - Torp
2个回答

1

如果这么简单的话,你可以使用低级别的HTTP库,比如libcurl,手动编写或使用XML库来编写请求。

我不了解simplesoap。我只是浏览了一下网站,看起来还不错^^

我同意你关于gSoap的看法 :)

我的两分钱。


1
半个十年后才看到这个,但我想提及另一个项目。 csoap,它是用C语言编写的,并使用libxml。 我不确定它的所有功能,但肯定比全手动更好。

csoap是LGPL许可,提到这一点是因为OP说gsoap(GPLv2)太过严格。因此我假设他们也不想静态链接csoap。 - Wilbur Whateley
我认为你说的是正确的,然而就我个人而言,我对LGPL的解释并没有像你那样宽容。你能提供一个Microsoft程序的例子,该程序未开源且静态链接到LGPL代码吗? - Wilbur Whateley
@WilburWhateley,我自己纠正一下,它的限制会稍微少一些,因为它是带有静态例外的GPL。看起来你必须动态链接一个LGPL库...显然,对于一个可靠的库,应该这样做,而不是成为一个傻瓜并使用一个仅仅因为它被许可而被允许的POS。 - J. M. Becker

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