Chilkat HOME Android™ Classic ASP C C++ C# Mono C# .NET Core C# C# UWP/WinRT DataFlex Delphi ActiveX Delphi DLL Visual FoxPro Java Lianja MFC Objective-C Perl PHP ActiveX PHP Extension PowerBuilder PowerShell PureBasic CkPython Chilkat2-Python Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ Visual Basic 6.0 VB.NET VB.NET UWP/WinRT VBScript Xojo Plugin Node.js Excel Go
(MFC) 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) { CkString strOut; // 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("\""); strOut.append(sb.getAsString()); strOut.append("\r\n"); http.SetRequestHeader("X-WSSE",sb.getAsString()); CkHttpResponse *resp = http.PostJson2(url,"text/json",json.emit()); if (http.get_LastMethodSuccess() != true) { strOut.append(http.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } strOut.append("Http Status code: "); strOut.appendInt(resp->get_StatusCode()); strOut.append("\r\n"); strOut.append("JSON response:"); strOut.append("\r\n"); strOut.append(resp->bodyStr()); strOut.append("\r\n"); delete resp; SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); } |
© 2000-2022 Chilkat Software, Inc. All Rights Reserved.