Sample code for 30+ languages & platforms
C++

RSAP Union API - Get Members Status

See more _Miscellaneous_ Examples

Demonstrates how to use an OAuth2 access token for the RSAP Union API. Calls the endpoint to get the statuses of all union members.

Chilkat C++ Downloads

C++
#include <CkHttp.h>
#include <CkJsonObject.h>
#include <CkCert.h>
#include <CkPrivateKey.h>
#include <CkStringBuilder.h>

void ChilkatSample(void)
    {
    bool success = false;

    //  This example assumes the Chilkat API to have been previously unlocked.
    //  See Global Unlock Sample for sample code.

    CkHttp http;

    //  Load the access token previously obtained by this example:  RSAP Union OAuth2
    CkJsonObject jToken;
    success = jToken.LoadFile("qa_data/tokens/rsapToken.json");
    if (success == false) {
        std::cout << "Failed to load access token JSON." << "\r\n";
        return;
    }

    //  Adds the "Authorization: Bearer ACCESS_TOKEN" header.
    http.put_AuthToken(jToken.stringOf("access_token"));

    //  For authentication, assuming both the client cert and access token are needed???
    CkCert cert;
    success = cert.LoadFromFile("qa_data/certs_and_keys/union_client_certificate.crt");
    if (success == false) {
        std::cout << cert.lastErrorText() << "\r\n";
        return;
    }

    CkPrivateKey privKey;
    success = privKey.LoadAnyFormatFile("qa_data/certs_and_keys/union_client_certificate.nopass.key","");
    if (success == false) {
        std::cout << privKey.lastErrorText() << "\r\n";
        return;
    }

    //  Associate the private key with the cert.
    //  This will fail if the private key is not actually the correct one that corresponds to the public key stored within the cert.
    success = cert.SetPrivateKey(privKey);
    if (success == false) {
        std::cout << cert.lastErrorText() << "\r\n";
        return;
    }

    //  Tell HTTP to use the cert for client TLS certificate authentication.
    success = http.SetSslClientCert(cert);
    if (success == false) {
        std::cout << http.lastErrorText() << "\r\n";
        return;
    }

    CkStringBuilder sbResponseBody;
    success = http.QuickGetSb("https://api-test.rsap.ca/members/status",sbResponseBody);
    if (success == false) {
        std::cout << http.lastErrorText() << "\r\n";
        return;
    }

    CkJsonObject jResp;
    jResp.LoadSb(sbResponseBody);
    jResp.put_EmitCompact(false);

    std::cout << "Response Body:" << "\r\n";
    std::cout << jResp.emit() << "\r\n";

    int respStatusCode = http.get_LastStatus();
    std::cout << "Response Status Code = " << respStatusCode << "\r\n";
    if (respStatusCode >= 400) {
        std::cout << "Response Header:" << "\r\n";
        std::cout << http.lastHeader() << "\r\n";
        std::cout << "Failed." << "\r\n";
        return;
    }
    }