Sample code for 30+ languages & platforms
Java

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 Java Downloads

Chilkat2 Java
import com.chilkatsoft.chilkat2.ChilkatException;
import com.chilkatsoft.chilkat2.Http;
import com.chilkatsoft.chilkat2.JsonArray;
import com.chilkatsoft.chilkat2.JsonObject;

public class ChilkatExample {

    public static void main(String[] args) {
        // This example assumes the Chilkat API to have been previously unlocked.
        // See Global Unlock Sample for sample code.

        JsonObject json = new 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"
        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");

        Http http = new 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.setAuthSignature(json.emit());

        http.setRequestHeader("Cache-Control", "no-cache");

        // Chilkat will auto-add the Date header because it's needed by the HTTP Signature.

        String responseJson;
        try {
            responseJson = http.quickGetStr("https://api-worldcheck.refinitiv.com/v2/groups");
        } catch (ChilkatException e) {
            System.out.println(e.getLastErrorText());
            return;
        }

        System.out.println(responseJson);
        System.out.println("----");
        // A 200 status code indicates success.
        System.out.println("Status code = " + http.getLastStatus());

        // 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

        JsonArray jarr = new JsonArray();

        jarr.load(responseJson);

        JsonObject jsonObj = null;
        String id = "";
        String name = "";
        String parentId = "";
        boolean hasChildren = false;
        String status = "";
        int j = 0;
        int count_j = 0;

        int i = 0;
        int count_i = jarr.getSize();
        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.setJ(j);
                j = j + 1;
            }

            jsonObj.close();
            i = i + 1;
        }
    }
}