Unicode C++
Unicode C++
Xero Get File Content (Files API)
Demonstrates how to download the content of a Xero file.Note: This example requires Chilkat v9.5.0.64 or greater.
Chilkat Unicode C++ Downloads
#include <CkRestW.h>
#include <CkStringBuilderW.h>
#include <CkBinDataW.h>
void ChilkatSample(void)
{
bool success = false;
// Note: Requires Chilkat v9.5.0.64 or greater.
// This requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
CkRestW rest;
// Before sending REST API calls, the REST object needs to be
// initialized for OAuth1.
// See Xero 2-Legged OAuth1 Setup for sample code.
// Assuming the REST object's OAuth1 authenticator is setup, and the initial
// connection was made, we may now send REST HTTP requests..
// ------------------------------------------------------------------------------
const wchar_t *fileID = L"f042e9a3-a31d-4595-b8b3-6030ea6084bb";
CkStringBuilderW sbPath;
sbPath.Append(L"/files.xro/1.0/Files/{FileId}/Content");
int numReplaced = sbPath.Replace(L"{FileId}",fileID);
CkBinDataW jpgData;
success = rest.FullRequestNoBodyBd(L"GET",sbPath.getAsString(),jpgData);
if (success != true) {
wprintf(L"%s\n",rest.lastErrorText());
return;
}
// A 200 response is expected for actual success.
// If we don't get a 200 response, then the response body was not actually
// the file data, but it was text containing error information.
if (rest.get_ResponseStatusCode() != 200) {
CkStringBuilderW sbErrorText;
sbErrorText.AppendBd(jpgData,L"utf-8",0,0);
wprintf(L"%s\n",sbErrorText.getAsString());
wprintf(L"-- Failed.\n");
return;
}
// Save to a local file.
success = jpgData.WriteFile(L"qa_output/xero_penguins.jpg");
if (success != true) {
wprintf(L"Failed to save to local file.\n");
}
wprintf(L"Xero Get File was Successful.\n");
}