// TestBase64Client.cpp : A simple xmlrpc client that returns a png file | |
// encoded as base64 data to the client. | |
// | |
// Usage: TestBase64Client serverHost serverPort outputfile | |
// Requests a png file from the specified server and saves it in outputfile. | |
// Link against xmlrpc lib and whatever socket libs your system needs (ws2_32.lib on windows) | |
#include "XmlRpc.h" | |
#include <iostream> | |
#include <fstream> | |
#include <stdlib.h> | |
using namespace XmlRpc; | |
int main(int argc, char* argv[]) | |
{ | |
if (argc != 4) { | |
std::cerr << "Usage: TestBase64Client serverHost serverPort outputFile\n"; | |
return -1; | |
} | |
int port = atoi(argv[2]); | |
//XmlRpc::setVerbosity(5); | |
XmlRpcClient c(argv[1], port); | |
XmlRpcValue noArgs, result; | |
if (c.execute("TestBase64", noArgs, result)) | |
{ | |
const XmlRpcValue::BinaryData& data = result; | |
std::ofstream outfile(argv[3], std::ios::binary | std::ios::trunc); | |
if (outfile.fail()) | |
std::cerr << "Error opening " << argv[3] << " for output.\n"; | |
else | |
{ | |
int n = int(data.size()); | |
for (int i=0; i<n; ++i) | |
outfile << data[i]; | |
} | |
} | |
else | |
std::cout << "Error calling 'TestBase64'\n\n"; | |
return 0; | |
} | |