Unicode C++
Unicode C++
REST Download Binary File to Memory
See more REST Examples
Download a binary file to a Chilkat BinData object.Chilkat Unicode C++ Downloads
#include <CkRestW.h>
#include <CkBinDataW.h>
#include <CkStringBuilderW.h>
void ChilkatSample(void)
{
bool success = false;
// This requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
CkRestW rest;
// We're going to download a sample MS-Word doc file.
// The URLs of our MS-Word sample documents are:
// https://www.chilkatdownload.com/sample_data/sample.doc
// https://www.chilkatdownload.com/sample_data/sample.docx
const wchar_t *pathPartOfUrl = L"/sample_data/sample.doc";
const wchar_t *domain = L"chilkatdownload.com";
bool bTls = true;
int port = 443;
bool bAutoReconnect = true;
success = rest.Connect(domain,port,bTls,bAutoReconnect);
if (success != true) {
wprintf(L"%s\n",rest.lastErrorText());
return;
}
CkBinDataW bd;
success = rest.FullRequestNoBodyBd(L"GET",pathPartOfUrl,bd);
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(bd,L"utf-8",0,0);
wprintf(L"%s\n",sbErrorText.getAsString());
wprintf(L"-- Failed.\n");
return;
}
// Save to a local file.
// Change the file path based on your operating system or needs...
success = bd.WriteFile(L"c:/temp/qa_output/sample.doc");
if (success != true) {
wprintf(L"Failed to save to local file.\n");
return;
}
wprintf(L"REST Download of MS-Word File was successful.\n");
}