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
(C++) Adobe Analytics Reporting API (1.4)Demonstrates a simple POST of JSON to the Adobe Analytics Reporting API (v1.4)
#include <CkJsonObject.h> #include <CkHttp.h> #include <CkDateTime.h> #include <CkPrng.h> #include <CkStringBuilder.h> #include <CkCrypt2.h> #include <CkHttpResponse.h> void ChilkatSample(void) { // This requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. bool success; // In this example, replace "rsid" with your report suite id, and update the URL to use the correct endpoint const char *url = "https://api.omniture.com/admin/1.4/rest/?method=Report.Queue"; CkJsonObject json; json.UpdateString("reportDescription.reportSuiteID","rsid"); json.UpdateString("reportDescription.dateGranularity","hour"); CkHttp http; CkDateTime dt; dt.SetFromCurrentSystemTime(); const char *timecreated = dt.getAsTimestamp(false); CkPrng prng; const char *nonce = prng.genRandom(12,"hex"); const char *secret = "SECRET"; CkStringBuilder sb; sb.Append(nonce); sb.Append(timecreated); sb.Append(secret); CkCrypt2 crypt; crypt.put_HashAlgorithm("sha1"); crypt.put_EncodingMode("base64"); const char *digest = crypt.hashStringENC(sb.getAsString()); CkStringBuilder sbNonce; sbNonce.Append(nonce); sbNonce.Encode("base64"); sb.Clear(); sb.Append("UsernameToken Username=\"USERNAME\", PasswordDigest=\""); sb.Append(digest); sb.Append("\", Nonce=\""); sb.Append(sbNonce.getAsString()); sb.Append("\", Created=\""); sb.Append(timecreated); sb.Append("\""); std::cout << sb.getAsString() << "\r\n"; http.SetRequestHeader("X-WSSE",sb.getAsString()); CkHttpResponse *resp = http.PostJson2(url,"text/json",json.emit()); if (http.get_LastMethodSuccess() != true) { std::cout << http.lastErrorText() << "\r\n"; return; } std::cout << "Http Status code: " << resp->get_StatusCode() << "\r\n"; std::cout << "JSON response:" << "\r\n"; std::cout << resp->bodyStr() << "\r\n"; delete resp; } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.