Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Unicode C) Refinitiv World-Check One - Get Top Level GroupsSee more Refinitiv ExamplesSends a signed GET request to get the top level groups. Note: This example requires Chilkat v9.5.0.89 or later.
#include <C_CkJsonObjectW.h> #include <C_CkHttpW.h> #include <C_CkJsonArrayW.h> void ChilkatSample(void) { HCkJsonObjectW json; BOOL success; HCkHttpW http; const wchar_t *responseJson; HCkJsonArrayW jarr; HCkJsonObjectW jsonObj; const wchar_t *id; const wchar_t *name; const wchar_t *parentId; BOOL hasChildren; const wchar_t *status; int j; int count_j; int i; int count_i; // This example assumes the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. json = CkJsonObjectW_Create(); // Create the following JSON: // // { // "keyId": "aaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee", // "hmacKey": "xxxxzI3vi58xxxCBxxx1+P/d8tGxx7KuLqN/KMPNxxxxekhj8/bx83+1YQSUxxxxYyv939ceY06GvhYRKmxxxx==", // "algorithm": "hmac-sha256", // "headers": [ // "(request-target)", // "host", // "date" // ] // } // Substitute your actual API key and API secret in place of "api-key" and "api-secret" CkJsonObjectW_UpdateString(json,L"keyId",L"api-key"); CkJsonObjectW_UpdateString(json,L"hmacKey",L"api-secret"); CkJsonObjectW_UpdateString(json,L"algorithm",L"hmac-sha256"); // Indicate the names of the headers to be included in the signature. // "(request-target)" is not actually a header name, but is a special name for HTTP signatures. // Copy the following three lines of code exactly as-is. // Do not replace "host", "date", or "(request-target)" with values. CkJsonObjectW_UpdateString(json,L"headers[0]",L"(request-target)"); CkJsonObjectW_UpdateString(json,L"headers[1]",L"host"); CkJsonObjectW_UpdateString(json,L"headers[2]",L"date"); http = CkHttpW_Create(); // Setting the AuthSignature property causes the following header to be computed and added: // Authorization: Signature keyId="...", algorithm="hmac-sha256", headers="(request-target) host date", signature="..." CkHttpW_putAuthSignature(http,CkJsonObjectW_emit(json)); CkHttpW_SetRequestHeader(http,L"Cache-Control",L"no-cache"); // Chilkat will auto-add the Date header because it's needed by the HTTP Signature. responseJson = CkHttpW_quickGetStr(http,L"https://api-worldcheck.refinitiv.com/v2/groups"); if (CkHttpW_getLastMethodSuccess(http) == FALSE) { wprintf(L"%s\n",CkHttpW_lastErrorText(http)); CkJsonObjectW_Dispose(json); CkHttpW_Dispose(http); return; } wprintf(L"%s\n",responseJson); wprintf(L"----\n"); // A 200 status code indicates success. wprintf(L"Status code = %d\n",CkHttpW_getLastStatus(http)); // Successful JSON looks like this: // [ // { // "id": "...", // "name": "Company Name", // "parentId": null, // "hasChildren": false, // "status": "ACTIVE", // "children": [] // } // ] // Use this online tool to generate parsing code from sample JSON: // Generate Parsing Code from JSON jarr = CkJsonArrayW_Create(); success = CkJsonArrayW_Load(jarr,responseJson); i = 0; count_i = CkJsonArrayW_getSize(jarr); while (i < count_i) { jsonObj = CkJsonArrayW_ObjectAt(jarr,i); id = CkJsonObjectW_stringOf(jsonObj,L"id"); name = CkJsonObjectW_stringOf(jsonObj,L"name"); parentId = CkJsonObjectW_stringOf(jsonObj,L"parentId"); hasChildren = CkJsonObjectW_BoolOf(jsonObj,L"hasChildren"); status = CkJsonObjectW_stringOf(jsonObj,L"status"); j = 0; count_j = CkJsonObjectW_SizeOfArray(jsonObj,L"children"); while (j < count_j) { CkJsonObjectW_putJ(jsonObj,j); j = j + 1; } CkJsonObjectW_Dispose(jsonObj); i = i + 1; } CkJsonObjectW_Dispose(json); CkHttpW_Dispose(http); CkJsonArrayW_Dispose(jarr); } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.