在C ++和Windows中使用XmlRpc

我需要在Windows平台上使用C ++中的XmlRpc。 尽pipe我的朋友向我保证XmlRpc是一个“广泛使用的标准技术”,但是没有多less库可用。 事实上,我只在Windows上find一个库来做这件事(另外还有一个库声称“你需要做很多工作才能在Windows上编译)。我find的库是Chris Morley的”XmlRpc ++“。但是,它不支持SSL

因此,我的问题是:我应该使用什么库?

Solutions Collecting From Web of "在C ++和Windows中使用XmlRpc"

我写了我自己的C ++库。 它在sourceforge: xmlrpcc4win中可用

我写这个的原因,而不是使用克里斯·莫雷的是:

  • Windows“wininet.lib”库提供了处理Http请求的所有功能,所以我宁愿使用它。 结果,我只需要1700 LOC。
  • “wininet.lib”,因此我的实现支持HTTPS
  • Chris Morley使用STL容器的效率非常低(Chris,如果你阅读这个,请寄给我)。

直到我写我自己的图书馆,(见上文)这里是我的答案:

目前,Chris Morley的XmlRpc ++库是Windows上C ++的唯一公有领域/ LPGL XmlRpc实现。

Linux上有几个C ++实现,其中任何一个都可能很容易移植到Windows,但事实似乎是,没有人能够实现这一点,并将其公之于众。 同样,eczamy说:“XML-RPC规范有点简单,实现你自己的XML-RPC客户端并不困难。

我成功地使用了Chris Morley的图书馆,尽管必须找到并修复相当多的错误。 这个项目的帮助论坛似乎有点积极,但没有人修复这些错误,并做了一个新的发布。 我一直和克里斯·莫雷通信,他有一个模糊的希望来做一个新的发布,他已经为这个stackoverflow问题(见下面/上面),并声称已经修复了大部分的错误,但到目前为止,他还没有做了一个修复许多错误的发布。 最后一个版本是在2003年。

对我来说,一个被广泛支持的(和简单的!)协议在Windows + C ++上有这样不好的支持是令人失望的。 请有人阅读本页拿起接力棒,例如接管XmlRpc ++或正确移植一个Linux实现。

有几十个XML-RPC 实现的实现 ,一些用C ++实现,但是大多数用其他语言。 例如,除了XmlRpc ++,还有用于C和C ++的XML-RPC 。 这里是关于如何使用C和C ++库的XML-RPC的HOWTO 。

XML-RPC规范有点简单,实现自己的XML-RPC客户端并不困难。 更不用说,也可以在C中使用现有的XML-RPC实现并将其引入到C ++项目中。

XML-RPC 主页也提供了很多有用的信息。

只是想记下几件物品:

  • XmlRpc ++的cvs存储库中的源代码支持OpenSSL(尽管我还没有尝试过,它是由另一个开发人员提供的)。

  • 大多数报告的错误都是用CVS修复的。 目前我还没有访问linux机器,所以我还没有正式发布。

  • XmlRpc ++不是公有领域。 它是版权和许可(LGPL)。

谢谢,Chris Morley

我能够得到Tim的版本xml RPC与https和基本的用户名/密码认证。

对于认证:

1)用户名和密码需要传递给InternetConnect(…)函数

2)在发送HttpSendRequest(…)命令之前,需要添加“Authorization:Basic base64encoded(user:pass)”的http请求头。