Unicode C
Unicode C
Xero Get Full Set of Tenants
See more Xero Examples
Check the full set of tenants you've been authorized to accessChilkat Unicode C Downloads
#include <C_CkHttpW.h>
#include <C_CkJsonObjectW.h>
#include <C_CkHttpResponseW.h>
#include <C_CkJsonArrayW.h>
void ChilkatSample(void)
{
BOOL success;
HCkHttpW http;
HCkJsonObjectW jsonToken;
HCkHttpResponseW resp;
HCkJsonArrayW jarr;
HCkJsonObjectW json;
const wchar_t *id;
const wchar_t *tenantId;
const wchar_t *tenantType;
const wchar_t *createdDateUtc;
const wchar_t *updatedDateUtc;
int i;
int count_i;
success = FALSE;
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
http = CkHttpW_Create();
jsonToken = CkJsonObjectW_Create();
success = CkJsonObjectW_LoadFile(jsonToken,L"qa_data/tokens/xero-access-token.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"));
CkHttpW_putAccept(http,L"application/json");
resp = CkHttpResponseW_Create();
success = CkHttpW_HttpNoBody(http,L"GET",L"https://api.xero.com/connections",resp);
if (success == FALSE) {
wprintf(L"%s\n",CkHttpW_lastErrorText(http));
CkHttpW_Dispose(http);
CkJsonObjectW_Dispose(jsonToken);
CkHttpResponseW_Dispose(resp);
return;
}
wprintf(L"Response Status Code: %d\n",CkHttpResponseW_getStatusCode(resp));
jarr = CkJsonArrayW_Create();
CkJsonArrayW_Load(jarr,CkHttpResponseW_bodyStr(resp));
CkJsonArrayW_putEmitCompact(jarr,FALSE);
wprintf(L"%s\n",CkJsonArrayW_emit(jarr));
if (CkHttpResponseW_getStatusCode(resp) != 200) {
wprintf(L"Failed.\n");
CkHttpW_Dispose(http);
CkJsonObjectW_Dispose(jsonToken);
CkHttpResponseW_Dispose(resp);
CkJsonArrayW_Dispose(jarr);
return;
}
// Sample response
// Use this online tool to generate parsing code from sample JSON:
// Generate Parsing Code from JSON
// [
// {
// "id": "c869f3b7-6435-4c7e-8cb2-122721b04a69",
// "tenantId": "45e4708e-d862-4111-ab3a-dd8cd03913e1",
// "tenantType": "ORGANISATION",
// "createdDateUtc": "2020-02-02T19:17:58.1117990",
// "updatedDateUtc": "2020-02-02T19:17:58.1117990"
// },
// {
// "id": "74305bf3-12e0-45e2-8dc8-e3ec73e3b1f9",
// "tenantId": "c3d5e782-2153-4cda-bdb4-cec791ceb90d",
// "tenantType": "ORGANISATION",
// "createdDateUtc": "2020-01-30T01:33:36.2717380",
// "updatedDateUtc": "2020-02-02T19:21:08.5739590"
// }
// ]
i = 0;
count_i = CkJsonArrayW_getSize(jarr);
while (i < count_i) {
json = CkJsonArrayW_ObjectAt(jarr,i);
id = CkJsonObjectW_stringOf(json,L"id");
tenantId = CkJsonObjectW_stringOf(json,L"tenantId");
tenantType = CkJsonObjectW_stringOf(json,L"tenantType");
createdDateUtc = CkJsonObjectW_stringOf(json,L"createdDateUtc");
updatedDateUtc = CkJsonObjectW_stringOf(json,L"updatedDateUtc");
CkJsonObjectW_Dispose(json);
i = i + 1;
}
CkHttpW_Dispose(http);
CkJsonObjectW_Dispose(jsonToken);
CkHttpResponseW_Dispose(resp);
CkJsonArrayW_Dispose(jarr);
}