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 <C_CkRestW.h>
#include <C_CkBinDataW.h>
#include <C_CkStringBuilderW.h>
void ChilkatSample(void)
{
BOOL success;
HCkRestW rest;
const wchar_t *pathPartOfUrl;
const wchar_t *domain;
BOOL bTls;
int port;
BOOL bAutoReconnect;
HCkBinDataW bd;
HCkStringBuilderW sbErrorText;
success = FALSE;
// This requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
rest = CkRestW_Create();
// 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
pathPartOfUrl = L"/sample_data/sample.doc";
domain = L"chilkatdownload.com";
bTls = TRUE;
port = 443;
bAutoReconnect = TRUE;
success = CkRestW_Connect(rest,domain,port,bTls,bAutoReconnect);
if (success != TRUE) {
wprintf(L"%s\n",CkRestW_lastErrorText(rest));
CkRestW_Dispose(rest);
return;
}
bd = CkBinDataW_Create();
success = CkRestW_FullRequestNoBodyBd(rest,L"GET",pathPartOfUrl,bd);
if (success != TRUE) {
wprintf(L"%s\n",CkRestW_lastErrorText(rest));
CkRestW_Dispose(rest);
CkBinDataW_Dispose(bd);
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 (CkRestW_getResponseStatusCode(rest) != 200) {
sbErrorText = CkStringBuilderW_Create();
CkStringBuilderW_AppendBd(sbErrorText,bd,L"utf-8",0,0);
wprintf(L"%s\n",CkStringBuilderW_getAsString(sbErrorText));
wprintf(L"-- Failed.\n");
CkRestW_Dispose(rest);
CkBinDataW_Dispose(bd);
CkStringBuilderW_Dispose(sbErrorText);
return;
}
// Save to a local file.
// Change the file path based on your operating system or needs...
success = CkBinDataW_WriteFile(bd,L"c:/temp/qa_output/sample.doc");
if (success != TRUE) {
wprintf(L"Failed to save to local file.\n");
CkRestW_Dispose(rest);
CkBinDataW_Dispose(bd);
CkStringBuilderW_Dispose(sbErrorText);
return;
}
wprintf(L"REST Download of MS-Word File was successful.\n");
CkRestW_Dispose(rest);
CkBinDataW_Dispose(bd);
CkStringBuilderW_Dispose(sbErrorText);
}