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
(Delphi DLL) RSAP Union API - Get Members StatusDemonstrates how to use an OAuth2 access token for the RSAP Union API. Calls the endpoint to get the statuses of all union members. For more information, see https://app.swaggerhub.com/apis-docs/pderas/RSAP/2.0.1#/Members/getAllUnionMemberStatuses
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Http, StringBuilder, PrivateKey, Cert, JsonObject; ... procedure TForm1.Button1Click(Sender: TObject); var http: HCkHttp; success: Boolean; jToken: HCkJsonObject; cert: HCkCert; privKey: HCkPrivateKey; sbResponseBody: HCkStringBuilder; jResp: HCkJsonObject; respStatusCode: Integer; begin // This example assumes the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. http := CkHttp_Create(); // Load the access token previously obtained by this example: RSAP Union OAuth2 jToken := CkJsonObject_Create(); success := CkJsonObject_LoadFile(jToken,'qa_data/tokens/rsapToken.json'); if (success = False) then begin Memo1.Lines.Add('Failed to load access token JSON.'); Exit; end; // Adds the "Authorization: Bearer ACCESS_TOKEN" header. CkHttp_putAuthToken(http,CkJsonObject__stringOf(jToken,'access_token')); // For authentication, assuming both the client cert and access token are needed??? cert := CkCert_Create(); success := CkCert_LoadFromFile(cert,'qa_data/certs_and_keys/union_client_certificate.crt'); if (success = False) then begin Memo1.Lines.Add(CkCert__lastErrorText(cert)); Exit; end; privKey := CkPrivateKey_Create(); success := CkPrivateKey_LoadAnyFormatFile(privKey,'qa_data/certs_and_keys/union_client_certificate.nopass.key',''); if (success = False) then begin Memo1.Lines.Add(CkPrivateKey__lastErrorText(privKey)); Exit; end; // 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 := CkCert_SetPrivateKey(cert,privKey); if (success = False) then begin Memo1.Lines.Add(CkCert__lastErrorText(cert)); Exit; end; // Tell HTTP to use the cert for client TLS certificate authentication. success := CkHttp_SetSslClientCert(http,cert); if (success = False) then begin Memo1.Lines.Add(CkHttp__lastErrorText(http)); Exit; end; sbResponseBody := CkStringBuilder_Create(); success := CkHttp_QuickGetSb(http,'https://api-test.rsap.ca/members/status',sbResponseBody); if (success = False) then begin Memo1.Lines.Add(CkHttp__lastErrorText(http)); Exit; end; jResp := CkJsonObject_Create(); CkJsonObject_LoadSb(jResp,sbResponseBody); CkJsonObject_putEmitCompact(jResp,False); Memo1.Lines.Add('Response Body:'); Memo1.Lines.Add(CkJsonObject__emit(jResp)); respStatusCode := CkHttp_getLastStatus(http); Memo1.Lines.Add('Response Status Code = ' + IntToStr(respStatusCode)); if (respStatusCode >= 400) then begin Memo1.Lines.Add('Response Header:'); Memo1.Lines.Add(CkHttp__lastHeader(http)); Memo1.Lines.Add('Failed.'); Exit; end; CkHttp_Dispose(http); CkJsonObject_Dispose(jToken); CkCert_Dispose(cert); CkPrivateKey_Dispose(privKey); CkStringBuilder_Dispose(sbResponseBody); CkJsonObject_Dispose(jResp); end; |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.