I am writing a multithreaded C++ (Linux) SOAP client to interface with the Betfair API. I initially tried to get to grips with gSOAP but I simply cannot get it to work properly using multiple WSDL files so that I have temporarily abandoned that. I have implemented my own classes for storing data and parsing/generating XML using RapidXML - the only thing that I am looking for advice on is what to use for the HTTPS transport aspect. I have implemented some initial test applications using OpenSSL and libcurl, these work fine but I have had some issues with the multithreaded aspects and they are more C than C++, and to be honest I was looking for something a little more up to date. So my question is this - If I were to rewrite this from scratch, what would be the best tool to use to deal with the HTTPS transport. I have researched the following as possibilities
- OpenSSL (implemented)
- libcurl (implemented)
- boost::asio library (not tried because as yet I have not dabbled with Boost)
- Try to do it all myself using socket programming (not keen on this approach)
- Just try and tough out gSOAP and trawl the web for ways to make it work.
- Something totally different that I have not come across yet.
So basically, given the above what would someone advise as the best approach to use in terms of solid performance and minimal multithreading problems? Or has anyone had any experience with poor performance of any of the above and would dissuade me from using it??? Any suggestions and advice will be gratefully received.