我需要在Windows平台上使用C ++中的XmlRpc。尽管我的朋友向我保证XmlRpc是一种“广泛使用的标准技术”,但它并没有很多可用的库。事实上,我在Windows上只发现了一个库,(另外一个声称“你必须做很多工作才能在Windows上编译)。我找到的库是Chris Morley的”XmlRpc ++“。但是,它不支持SSL。
因此我的问题是:我应该使用哪个图书馆?
答案 0 :(得分:9)
我已经编写了自己的C ++库。它可以在sourceforge上找到: xmlrpcc4win
我写它而不是使用Chris Morley的原因是:
答案 1 :(得分:4)
在我写自己的图书馆之前,(见上文)这是我的回答:
目前,Chris Morley的XmlRpc++ library是Windows上唯一的C ++公共域/ LPGL XmlRpc实现。
Linux有两种C ++实现,其中任何一种都可能很容易移植到Windows,但事实似乎是没有人这样做并且公开发布。另外,正如eczamy所说,“XML-RPC规范有点简单,实现自己的XML-RPC客户端并不困难。”
我成功地使用了Chris Morley的库,尽管必须找到并修复了很多错误。这个项目的Help Forum似乎有点活跃,但是没有人修复过这些错误并完成了新版本。我一直在与克里斯莫利通信,并且他希望做一个新的发布,并且他已经为这个stackOverflow问题做了贡献(见下文/上面)并且他声称修复了大部分错误,但到目前为止他还没有发布了修复许多错误的版本。最后一个版本发布于2003年。
令我失望的是,一个假定的广泛支持(和简单!)协议在Windows + C ++上的支持很差。请读此页面的人可以拿起接力棒,例如接管XmlRpc ++或正确移植其中一个Linux实现。
答案 2 :(得分:1)
有许多XML-RPC implementations的实现,有些是用C ++实现的,但大多数用于其他语言。例如,除了XmlRpc ++之外,还有XML-RPC for C and C++。这是关于如何使用XML-RPC for C和C ++库的HOWTO。
XML-RPC规范有点简单,实现自己的XML-RPC客户端并不困难。更不用说,也可以在C中使用现有的XML-RPC实现并将其引入您的C ++项目。
XML-RPC home page也提供了许多有用的信息。
答案 3 :(得分:1)
只想注意几件事:
XmlRpc ++的cvs存储库中的源代码支持OpenSSL(虽然我没有尝试过,但它是由其他开发人员提供的。)
大多数报告的错误都是用cvs修复的;我目前无法访问Linux机器,所以我还没有正式发布。
XmlRpc++不是公共领域。它受版权保护和许可(LGPL)。
谢谢, 克里斯莫利
答案 4 :(得分:1)
我能够使用https和基本的用户名/密码身份验证来使用Tim的xml rpc版本。
用于身份验证:
1)需要将用户名和密码传递给InternetConnect(...)函数
2)http请求标头"授权:基本base64encoded(user:pass)"需要在发送HttpSendRequest(...)命令之前添加。