If you want to use a lower level (for example, parse the XML response), you can call an application such as cURL (or call libcurl directly). I was very lucky with this approach.
I wrote programs that call cURL from the command line as follows:
command_line << "--insecure"
<< " -d @" << request->post_file_name
<< " -H \"Content-Type: application/soap+xml; charset=utf8\""
<< " --output " << request->results_file_name
<< " --trace-time --trace-ascii " << curl_log_path
<< " " << fs_service_url;
source
share