Home | History | Annotate | Download | only in test
      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 
     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