Chilkat HOME Android™ Classic ASP C C++ C# Mono C# .NET Core C# C# UWP/WinRT DataFlex Delphi ActiveX Delphi DLL Visual FoxPro Java Lianja MFC Objective-C Perl PHP ActiveX PHP Extension PowerBuilder PowerShell PureBasic CkPython Chilkat2-Python Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ Visual Basic 6.0 VB.NET VB.NET UWP/WinRT VBScript Xojo Plugin Node.js Excel Go
(MFC) 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 <CkJsonObject.h> #include <CkHttp.h> #include <CkJsonArray.h> void ChilkatSample(void) { CkString strOut; // This example assumes the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. CkJsonObject json; bool success; // 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" json.UpdateString("keyId","api-key"); json.UpdateString("hmacKey","api-secret"); json.UpdateString("algorithm","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. json.UpdateString("headers[0]","(request-target)"); json.UpdateString("headers[1]","host"); json.UpdateString("headers[2]","date"); CkHttp http; // 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="..." http.put_AuthSignature(json.emit()); http.SetRequestHeader("Cache-Control","no-cache"); // Chilkat will auto-add the Date header because it's needed by the HTTP Signature. const char *responseJson = http.quickGetStr("https://api-worldcheck.refinitiv.com/v2/groups"); if (http.get_LastMethodSuccess() == false) { strOut.append(http.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } strOut.append(responseJson); strOut.append("\r\n"); strOut.append("----"); strOut.append("\r\n"); // A 200 status code indicates success. strOut.append("Status code = "); strOut.appendInt(http.get_LastStatus()); strOut.append("\r\n"); // 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 CkJsonArray jarr; success = jarr.Load(responseJson); CkJsonObject *jsonObj = 0; const char *id = 0; const char *name = 0; const char *parentId = 0; bool hasChildren; const char *status = 0; int j; int count_j; int i = 0; int count_i = jarr.get_Size(); while (i < count_i) { jsonObj = jarr.ObjectAt(i); id = jsonObj->stringOf("id"); name = jsonObj->stringOf("name"); parentId = jsonObj->stringOf("parentId"); hasChildren = jsonObj->BoolOf("hasChildren"); status = jsonObj->stringOf("status"); j = 0; count_j = jsonObj->SizeOfArray("children"); while (j < count_j) { jsonObj->put_J(j); j = j + 1; } delete jsonObj; i = i + 1; } SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); } |
© 2000-2022 Chilkat Software, Inc. All Rights Reserved.