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
(PureBasic) 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.
IncludeFile "CkHttp.pb" IncludeFile "CkJsonArray.pb" IncludeFile "CkJsonObject.pb" Procedure ChilkatExample() ; This example assumes the Chilkat API to have been previously unlocked. ; See Global Unlock Sample for sample code. json.i = CkJsonObject::ckCreate() If json.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success.i ; 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" CkJsonObject::ckUpdateString(json,"keyId","api-key") CkJsonObject::ckUpdateString(json,"hmacKey","api-secret") CkJsonObject::ckUpdateString(json,"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. CkJsonObject::ckUpdateString(json,"headers[0]","(request-target)") CkJsonObject::ckUpdateString(json,"headers[1]","host") CkJsonObject::ckUpdateString(json,"headers[2]","date") http.i = CkHttp::ckCreate() If http.i = 0 Debug "Failed to create object." ProcedureReturn EndIf ; 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="..." CkHttp::setCkAuthSignature(http, CkJsonObject::ckEmit(json)) CkHttp::ckSetRequestHeader(http,"Cache-Control","no-cache") ; Chilkat will auto-add the Date header because it's needed by the HTTP Signature. responseJson.s = CkHttp::ckQuickGetStr(http,"https://api-worldcheck.refinitiv.com/v2/groups") If CkHttp::ckLastMethodSuccess(http) = 0 Debug CkHttp::ckLastErrorText(http) CkJsonObject::ckDispose(json) CkHttp::ckDispose(http) ProcedureReturn EndIf Debug responseJson Debug "----" ; A 200 status code indicates success. Debug "Status code = " + Str(CkHttp::ckLastStatus(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.i = CkJsonArray::ckCreate() If jarr.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success = CkJsonArray::ckLoad(jarr,responseJson) jsonObj.i id.s name.s parentId.s hasChildren.i status.s j.i count_j.i i.i = 0 count_i.i = CkJsonArray::ckSize(jarr) While i < count_i jsonObj = CkJsonArray::ckObjectAt(jarr,i) id = CkJsonObject::ckStringOf(jsonObj,"id") name = CkJsonObject::ckStringOf(jsonObj,"name") parentId = CkJsonObject::ckStringOf(jsonObj,"parentId") hasChildren = CkJsonObject::ckBoolOf(jsonObj,"hasChildren") status = CkJsonObject::ckStringOf(jsonObj,"status") j = 0 count_j = CkJsonObject::ckSizeOfArray(jsonObj,"children") While j < count_j CkJsonObject::setCkJ(jsonObj, j) j = j + 1 Wend CkJsonObject::ckDispose(jsonObj) i = i + 1 Wend CkJsonObject::ckDispose(json) CkHttp::ckDispose(http) CkJsonArray::ckDispose(jarr) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.