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 <CkHttpW.h>
#include <CkJsonObjectW.h>
#include <CkBinDataW.h>
#include <CkMimeW.h>
#include <CkStringBuilderW.h>
void ChilkatSample(void)
{
bool success = false;
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
CkHttpW http;
// Implements the following HTTP request:
// GET /restapi/v2.1/accounts/{accountId}/envelopes/{envelopeId}/documents/1
// Adds the "Authorization: Bearer eyJ0eXAi.....UE8Kl_V8KroQ" header.
CkJsonObjectW jsonToken;
// Load a previously obtained OAuth2 access token.
success = jsonToken.LoadFile(L"qa_data/tokens/docusign.json");
if (success == false) {
wprintf(L"%s\n",jsonToken.lastErrorText());
return;
}
http.put_AuthToken(jsonToken.stringOf(L"access_token"));
// Use your account ID and a valid envelopeId here:
http.SetUrlVar(L"accountId",L"7f3f65ed-5e87-418d-94c1-92499ddc8252");
http.SetUrlVar(L"envelopeId",L"90d7e40a-b4bd-4ccd-bf38-c80e37954a13");
const wchar_t *url = L"https://demo.docusign.net/restapi/v2.1/accounts/{$accountId}/envelopes/{$envelopeId}/documents/1";
CkBinDataW bd;
success = http.DownloadBd(url,bd);
if (success == false) {
wprintf(L"%s\n",http.lastErrorText());
return;
}
int respStatusCode = http.get_LastStatus();
wprintf(L"Response Status Code = %d\n",respStatusCode);
if (respStatusCode != 200) {
wprintf(L"Response Header:\n");
wprintf(L"%s\n",http.lastResponseHeader());
// The response body contains an error message.
wprintf(L"%s\n",bd.getString(L"utf-8"));
wprintf(L"Failed.\n");
return;
}
// The response indicated success.
// Get the filename from the Content-Disposition header and save to a file.
CkMimeW mime;
mime.LoadMime(http.lastResponseHeader());
const wchar_t *filename = mime.getHeaderFieldAttribute(L"Content-Disposition",L"filename");
wprintf(L"filename = %s\n",filename);
CkStringBuilderW sbPath;
sbPath.Append(L"C:/aaworkarea/");
sbPath.Append(filename);
success = bd.WriteFile(sbPath.getAsString());
if (success == false) {
wprintf(L"Failed to save to output file.\n");
}
else {
wprintf(L"Wrote %s\n",sbPath.getAsString());
}
}