在C+中使用XmlRpc+;和窗户 在Windows平台上,我需要在C++中使用XmlRpc。尽管我的朋友向我保证XmlRpc是一种“广泛可用的标准技术”,但可用于它的库并不多。事实上,我只找到了一个在Windows上执行此操作的库(加上另一个声称“要在Windows上编译此文件,您需要做很多工作”)。我找到的库是Chris Morley的“XmlRpc++”。但是,它不支持SSL 我的问题是:我应该使用什么库?

在C+中使用XmlRpc+;和窗户 在Windows平台上,我需要在C++中使用XmlRpc。尽管我的朋友向我保证XmlRpc是一种“广泛可用的标准技术”,但可用于它的库并不多。事实上,我只找到了一个在Windows上执行此操作的库(加上另一个声称“要在Windows上编译此文件,您需要做很多工作”)。我找到的库是Chris Morley的“XmlRpc++”。但是,它不支持SSL 我的问题是:我应该使用什么库?,c++,windows,ssl,xml-rpc,C++,Windows,Ssl,Xml Rpc,有很多XML- RPC的实现,有些是C++,但大多数是其他语言。例如,除了XmlRpc +之外,还有一个关于XML- RPC的C和C++库如何使用。 XML- RPC规范有点简单,实现自己的XMLRPC客户端并不困难。更不用说,在C中也可以使用现有的XML- RPC实现,并将其纳入C++项目。 XML-RPC还提供了许多有用的信息。直到我编写了自己的库(见上文),我的答案如下: 目前,Chris Morley是Windows上C++唯一的公共域/LPGL XMLRPC实现。 Linux有两种

有很多XML- RPC的实现,有些是C++,但大多数是其他语言。例如,除了XmlRpc +之外,还有一个关于XML- RPC的C和C++库如何使用。 <> XML- RPC规范有点简单,实现自己的XMLRPC客户端并不困难。更不用说,在C中也可以使用现有的XML- RPC实现,并将其纳入C++项目。
XML-RPC还提供了许多有用的信息。

直到我编写了自己的库(见上文),我的答案如下:

目前,Chris Morley是Windows上C++唯一的公共域/LPGL XMLRPC实现。

Linux有两种C++实现,其中任何一种都可以很容易地移植到Windows,但事实上,没有人这样做,并使之成为公开可用的。另外,正如EZAMAMY所说,“XML- RPC规范有些简单,实现自己的XML- RPC客户端并不难。” 我正在成功地使用Chris Morley的库,尽管我已经发现并修复了很多bug。这个项目的开发人员似乎有些活跃,但没有人修复这些bug并发布新版本。我一直在与Chris Morley通信,他对发布新版本抱有模糊的希望,他也为这个stackOve做出了贡献rflow提出了一个问题(见下/上),他声称已经修复了大多数bug,但到目前为止,他还没有发布一个版本来修复这些bug。上一个版本是在2003年


<> P.>一个假设广泛支持的(简单的)协议对Windows + C++的支持很差,这是令人失望的。请有人读这个页面拿起接力棒,例如接管XMLRPC++或适当地移植一个Linux实现。

< P>只是想注意几个项目:

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

  • 大多数报告的bug都是在cvs中修复的;我目前没有访问linux机器的权限,所以我还没有发布正式版本

  • 不是公共领域。它受版权和许可(LGPL)

谢谢,
Chris Morley

< P>我编写了自己的C++库。

我写这篇文章而不是用克里斯·莫利的是因为:

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

我能够让Tim版本的xml rpc使用https和基本用户名/密码身份验证

对于身份验证:

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


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

用于C和C++的XML-RPC库在Windows上不起作用-我引述:“…但事实是,它可能无法在Windows系统上开箱即用。这意味着只有一个C++库在Windows上运行,即Chris Morley的,而且它没有SSL支持。谢谢,我要尝试一下。但我必须承认,我对TimXmlRpc.cpp文件中的这一部分感到相当害怕:#不定义#define或| |#define和&&Small update,我使用这个库非常成功,而且很容易实现。强烈推荐在Windows上需要XMLRPC的人。@ TimCooper是否支持任何方式来实现非同步XMLRPC调用?我刚才试用了提姆的“XMLRPC C++ Windows”,用INFIZONSOFT和GOLY工作!不过,必须密切关注Infusionsoft如何在数组中嵌套结构。感谢分享您的库!但它似乎不支持Unicode。XML标记中未指定编码(因此默认为UTF8)。然后,客户端程序必须将字符串转换为UTF8或从UTF8转换为UTF8,然后再传递到库。不太方便。此外,项目的发布版本也不会编译。我想这个问题不大,因为我们只使用源代码(而不是项目)。也有strcpy/sprintf调用会受到缓冲区溢出的影响。能否将修改后的源代码发送给我?我将检查并将其放入sourceforge版本。你可以打电话找我tim@edval.com.au