1 // TestBase64Client.cpp : A simple xmlrpc client that returns a png file
2 // encoded as base64 data to the client.
3 //
4 // Usage: TestBase64Client serverHost serverPort outputfile
5 // Requests a png file from the specified server and saves it in outputfile.
6 // Link against xmlrpc lib and whatever socket libs your system needs (ws2_32.lib on windows)
7 
8 #include "XmlRpc.h"
9 #include <iostream>
10 #include <fstream>
11 #include <stdlib.h>
12 
13 using namespace XmlRpc;
14 
main(int argc,char * argv[])15 int main(int argc, char* argv[])
16 {
17   if (argc != 4) {
18     std::cerr << "Usage: TestBase64Client serverHost serverPort outputFile\n";
19     return -1;
20   }
21   int port = atoi(argv[2]);
22 
23   //XmlRpc::setVerbosity(5);
24   XmlRpcClient c(argv[1], port);
25 
26   XmlRpcValue noArgs, result;
27   if (c.execute("TestBase64", noArgs, result))
28   {
29     const XmlRpcValue::BinaryData& data = result;
30     std::ofstream outfile(argv[3], std::ios::binary | std::ios::trunc);
31     if (outfile.fail())
32       std::cerr << "Error opening " << argv[3] << " for output.\n";
33     else
34     {
35       int n = int(data.size());
36       for (int i=0; i<n; ++i)
37         outfile << data[i];
38     }
39   }
40   else
41     std::cout << "Error calling 'TestBase64'\n\n";
42 
43   return 0;
44 }
45 
46