You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.2 KiB
45 lines
1.2 KiB
// 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; |
|
} |
|
|
|
|