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.