Unicode C
Unicode C
DocuSign Download Envelope Document (PDF)
See more DocuSign Examples
Retrieves the specified document from the envelope. The response body of this method is the PDF file as a byte stream. You can get the file name and document ID from the response's Content-Disposition header.Chilkat Unicode C Downloads
#include <C_CkHttpW.h>
#include <C_CkJsonObjectW.h>
#include <C_CkBinDataW.h>
#include <C_CkMimeW.h>
#include <C_CkStringBuilderW.h>
void ChilkatSample(void)
{
BOOL success;
HCkHttpW http;
HCkJsonObjectW jsonToken;
const wchar_t *url;
HCkBinDataW bd;
int respStatusCode;
HCkMimeW mime;
const wchar_t *filename;
HCkStringBuilderW sbPath;
success = FALSE;
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
http = CkHttpW_Create();
// Implements the following HTTP request:
// GET /restapi/v2.1/accounts/{accountId}/envelopes/{envelopeId}/documents/1
// Adds the "Authorization: Bearer eyJ0eXAi.....UE8Kl_V8KroQ" header.
jsonToken = CkJsonObjectW_Create();
// Load a previously obtained OAuth2 access token.
success = CkJsonObjectW_LoadFile(jsonToken,L"qa_data/tokens/docusign.json");
if (success == FALSE) {
wprintf(L"%s\n",CkJsonObjectW_lastErrorText(jsonToken));
CkHttpW_Dispose(http);
CkJsonObjectW_Dispose(jsonToken);
return;
}
CkHttpW_putAuthToken(http,CkJsonObjectW_stringOf(jsonToken,L"access_token"));
// Use your account ID and a valid envelopeId here:
CkHttpW_SetUrlVar(http,L"accountId",L"7f3f65ed-5e87-418d-94c1-92499ddc8252");
CkHttpW_SetUrlVar(http,L"envelopeId",L"90d7e40a-b4bd-4ccd-bf38-c80e37954a13");
url = L"https://demo.docusign.net/restapi/v2.1/accounts/{$accountId}/envelopes/{$envelopeId}/documents/1";
bd = CkBinDataW_Create();
success = CkHttpW_DownloadBd(http,url,bd);
if (success == FALSE) {
wprintf(L"%s\n",CkHttpW_lastErrorText(http));
CkHttpW_Dispose(http);
CkJsonObjectW_Dispose(jsonToken);
CkBinDataW_Dispose(bd);
return;
}
respStatusCode = CkHttpW_getLastStatus(http);
wprintf(L"Response Status Code = %d\n",respStatusCode);
if (respStatusCode != 200) {
wprintf(L"Response Header:\n");
wprintf(L"%s\n",CkHttpW_lastResponseHeader(http));
// The response body contains an error message.
wprintf(L"%s\n",CkBinDataW_getString(bd,L"utf-8"));
wprintf(L"Failed.\n");
CkHttpW_Dispose(http);
CkJsonObjectW_Dispose(jsonToken);
CkBinDataW_Dispose(bd);
return;
}
// The response indicated success.
// Get the filename from the Content-Disposition header and save to a file.
mime = CkMimeW_Create();
CkMimeW_LoadMime(mime,CkHttpW_lastResponseHeader(http));
filename = CkMimeW_getHeaderFieldAttribute(mime,L"Content-Disposition",L"filename");
wprintf(L"filename = %s\n",filename);
sbPath = CkStringBuilderW_Create();
CkStringBuilderW_Append(sbPath,L"C:/aaworkarea/");
CkStringBuilderW_Append(sbPath,filename);
success = CkBinDataW_WriteFile(bd,CkStringBuilderW_getAsString(sbPath));
if (success == FALSE) {
wprintf(L"Failed to save to output file.\n");
}
else {
wprintf(L"Wrote %s\n",CkStringBuilderW_getAsString(sbPath));
}
CkHttpW_Dispose(http);
CkJsonObjectW_Dispose(jsonToken);
CkBinDataW_Dispose(bd);
CkMimeW_Dispose(mime);
CkStringBuilderW_Dispose(sbPath);
}