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
(Objective-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.
#import <CkoJsonObject.h> #import <CkoHttp.h> #import <NSString.h> #import <CkoJsonArray.h> // This example assumes the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. CkoJsonObject *json = [[CkoJsonObject alloc] init]; 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" value: @"api-key"]; [json UpdateString: @"hmacKey" value: @"api-secret"]; [json UpdateString: @"algorithm" value: @"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]" value: @"(request-target)"]; [json UpdateString: @"headers[1]" value: @"host"]; [json UpdateString: @"headers[2]" value: @"date"]; CkoHttp *http = [[CkoHttp alloc] init]; // 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.AuthSignature = [json Emit]; [http SetRequestHeader: @"Cache-Control" value: @"no-cache"]; // Chilkat will auto-add the Date header because it's needed by the HTTP Signature. NSString *responseJson = [http QuickGetStr: @"https://api-worldcheck.refinitiv.com/v2/groups"]; if (http.LastMethodSuccess == NO) { NSLog(@"%@",http.LastErrorText); return; } NSLog(@"%@",responseJson); NSLog(@"%@",@"----"); // A 200 status code indicates success. NSLog(@"%@%d",@"Status code = ",[http.LastStatus intValue]); // 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 CkoJsonArray *jarr = [[CkoJsonArray alloc] init]; success = [jarr Load: responseJson]; CkoJsonObject *jsonObj = 0; NSString *id = 0; NSString *name = 0; NSString *parentId = 0; BOOL hasChildren; NSString *status = 0; int j; int count_j; int i = 0; int count_i = [jarr.Size intValue]; while (i < count_i) { jsonObj = [jarr ObjectAt: [NSNumber numberWithInt: 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"] intValue]; while (j < count_j) { jsonObj.J = [NSNumber numberWithInt: j]; j = j + 1; } i = i + 1; } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.