Visual FoxPro
Visual FoxPro
Refinitiv World-Check One - Get Top Level Groups
See more Refinitiv Examples
Sends a signed GET request to get the top level groups.Note: This example requires Chilkat v9.5.0.89 or later.
Chilkat Visual FoxPro Downloads
LOCAL lnSuccess
LOCAL loJson
LOCAL loHttp
LOCAL lcResponseJson
LOCAL loJarr
LOCAL loJsonObj
LOCAL lcId
LOCAL lcName
LOCAL lcParentId
LOCAL lnHasChildren
LOCAL lcStatus
LOCAL j
LOCAL lnCount_j
LOCAL i
LOCAL lnCount_i
lnSuccess = 0
* This example assumes the Chilkat API to have been previously unlocked.
* See Global Unlock Sample for sample code.
loJson = CreateObject('Chilkat.JsonObject')
* 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"
loJson.UpdateString("keyId","api-key")
loJson.UpdateString("hmacKey","api-secret")
loJson.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.
loJson.UpdateString("headers[0]","(request-target)")
loJson.UpdateString("headers[1]","host")
loJson.UpdateString("headers[2]","date")
loHttp = CreateObject('Chilkat.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="..."
loHttp.AuthSignature = loJson.Emit()
loHttp.SetRequestHeader("Cache-Control","no-cache")
* Chilkat will auto-add the Date header because it's needed by the HTTP Signature.
lcResponseJson = loHttp.QuickGetStr("https://api-worldcheck.refinitiv.com/v2/groups")
IF (loHttp.LastMethodSuccess = 0) THEN
? loHttp.LastErrorText
RELEASE loJson
RELEASE loHttp
CANCEL
ENDIF
? lcResponseJson
? "----"
* A 200 status code indicates success.
? "Status code = " + STR(loHttp.LastStatus)
* 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
loJarr = CreateObject('Chilkat.JsonArray')
lnSuccess = loJarr.Load(lcResponseJson)
i = 0
lnCount_i = loJarr.Size
DO WHILE i < lnCount_i
loJsonObj = loJarr.ObjectAt(i)
lcId = loJsonObj.StringOf("id")
lcName = loJsonObj.StringOf("name")
lcParentId = loJsonObj.StringOf("parentId")
lnHasChildren = loJsonObj.BoolOf("hasChildren")
lcStatus = loJsonObj.StringOf("status")
j = 0
lnCount_j = loJsonObj.SizeOfArray("children")
DO WHILE j < lnCount_j
loJsonObj.J = j
j = j + 1
ENDDO
RELEASE loJsonObj
i = i + 1
ENDDO
RELEASE loJson
RELEASE loHttp
RELEASE loJarr