<p>I need to use XmlRpc in C++ on a Windows platform.  Despite the fact that my friends assure me that XmlRpc is a "widely available standard technology", there are not many libraries available for it.  In fact I only found one library to do this on Windows, (plus another one that claims "you'll have to do a lot of work to get this to compile on Windows).  The library I found was Chris Morley's "XmlRpc++".  However, it doesn't have support for SSL.</p>

<p>My question therefore is:  what library should I be using?  </p>

[{'answer_id': 68274, 'author': 'eczarny', 'author_id': 7787, 'author_profile': 'https://Stackoverflow.com/users/7787', 'pm_score': 1, 'selected': False, 'text': '<p>There are dozens of implementations of the XML-RPC <a href="http://www.xmlrpc.com/directory/1568/implementations" rel="nofollow noreferrer">implementations</a>, some in C++, but most in other languages. For example, besides XmlRpc++ there is also <a href="http://xmlrpc-c.sourceforge.net/" rel="nofollow noreferrer">XML-RPC for C and C++</a>. Here is a <a href="http://tldp.org/HOWTO/XML-RPC-HOWTO/xmlrpc-howto-c.html" rel="nofollow noreferrer">HOWTO</a> on how the XML-RPC for C and C++ library can be used.</p>\n\n<p>The XML-RPC specification is somewhat simple and it would not be difficult to implement your own XML-RPC client. Not to mention, it would also be possible to take an existing XML-RPC implementation in C and bring into your C++ project.</p>\n\n<p>The XML-RPC <a href="http://www.xmlrpc.com/" rel="nofollow noreferrer">home page</a> also provides a lot of useful information.</p>\n'}, {'answer_id': 275708, 'author': 'Tim Cooper', 'author_id': 10592, 'author_profile': 'https://Stackoverflow.com/users/10592', 'pm_score': 2, 'selected': False, 'text': '<p>Until I wrote my own library, (see above) here was my answer:</p>\n\n<p>Currently, the <a href="http://xmlrpcpp.sourceforge.net/" rel="nofollow noreferrer">XmlRpc++ library</a> by Chris Morley is the only public domain/LPGL XmlRpc implementation for C++ on Windows.  </p>\n\n<p>There are a couple of C++ implementations for Linux, either of which could be presumably easily ported to Windows, but the fact seems to be that no-one has yet done so and made it publicly available.  Also, as eczamy says, "The XML-RPC specification is somewhat simple and it would not be difficult to implement your own XML-RPC client."</p>\n\n<p>I\'m using Chris Morley\'s library successfully, despite having had to find and fix quite a number of bugs.  The <a href="http://sourceforge.net/forum/forum.php?forum_id=240495" rel="nofollow noreferrer" title="Help Forum">Help Forum</a> for this project seems to be somewhat active, but no-one has fixed these bugs and done a new release.  I have been in correspondence with Chris Morley and he has vague hopes to do a new release, and he has contributed to this stackOverflow question (see below/above) and he claims to have fixed most of the bugs, but so far he has not made a release that fixes the many bugs.  The last release was in 2003.</p>\n\n<p>It is disappointing to me that a supposed widely supported (and simple!) protocol has such poor support on Windows + C++.  Please can someone reading this page pick up the baton and e.g. take over XmlRpc++ or properly port one of the Linux implementations.</p>\n'}, {'answer_id': 276712, 'author': 'Chris Morley', 'author_id': 36034, 'author_profile': 'https://Stackoverflow.com/users/36034', 'pm_score': 1, 'selected': False, 'text': '<p>Just wanted to note a couple of items:</p>\n\n<ul>\n<li><p>The source in the cvs repository for XmlRpc++ has support for OpenSSL (although I have not tried it, it was contributed by another developer).</p></li>\n<li><p>Most of the reported bugs are fixed in cvs; I don\'t have access to a linux machine at the moment, so I haven\'t made an official release.</p></li>\n<li><p><a href="http://xmlrpcpp.sourceforge.net/" rel="nofollow noreferrer">XmlRpc++</a> is not public domain. It is copyrighted and licensed (LGPL).</p></li>\n</ul>\n\n<p>Thanks,\nChris Morley</p>\n'}, {'answer_id': 999308, 'author': 'Tim Cooper', 'author_id': 10592, 'author_profile': 'https://Stackoverflow.com/users/10592', 'pm_score': 4, 'selected': True, 'text': '<p>I\'ve written my own C++ library.  It\'s available at sourceforge:\n<a href="http://sourceforge.net/projects/xmlrpcc4win/" rel="noreferrer">xmlrpcc4win</a></p>\n\n<p>The reason I wrote it rather than using Chris Morley\'s was that:</p>\n\n<ul>\n<li>The Windows "wininet.lib" library gives you all the functionality for handling Http requests, so I\'d rather use that.  As a result, I only needed 1700 LOC.</li>\n<li>"wininet.lib", and therefore my implementation, supports HTTPS</li>\n<li>Chris Morley\'s use of STL containers was quite inefficient (Chris, mail me if you read this).</li>\n</ul>\n'}, {'answer_id': 14738368, 'author': 'highvelcty', 'author_id': 1144204, 'author_profile': 'https://Stackoverflow.com/users/1144204', 'pm_score': 1, 'selected': False, 'text': '<p>I was able to get Tim\'s version of xml rpc working with https and with basic username / password authentication. </p>\n\n<p>For the authentication: </p>\n\n<p>1) the username and password need to be passed to the InternetConnect(...) function</p>\n\n<p>2) an http request header of "Authorization: Basic base64encoded(user:pass)" needs to be added prior to sending the HttpSendRequest(...) command.</p>\n'}]
['https://Stackoverflow.com/questions/68144', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/10592/']