Delphi DLL
Delphi DLL
Adobe Analytics Reporting API (1.4)
See more HTTP Misc Examples
Demonstrates a simple POST of JSON to the Adobe Analytics Reporting API (v1.4)Chilkat Delphi DLL Downloads
var
success: Boolean;
url: PWideChar;
json: HCkJsonObject;
http: HCkHttp;
dt: HCkDateTime;
timecreated: PWideChar;
prng: HCkPrng;
nonce: PWideChar;
secret: PWideChar;
sb: HCkStringBuilder;
crypt: HCkCrypt2;
digest: PWideChar;
sbNonce: HCkStringBuilder;
resp: HCkHttpResponse;
begin
success := False;
// This requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
// In this example, replace "rsid" with your report suite id, and update the URL to use the correct endpoint
url := 'https://api.omniture.com/admin/1.4/rest/?method=Report.Queue';
json := CkJsonObject_Create();
CkJsonObject_UpdateString(json,'reportDescription.reportSuiteID','rsid');
CkJsonObject_UpdateString(json,'reportDescription.dateGranularity','hour');
http := CkHttp_Create();
dt := CkDateTime_Create();
CkDateTime_SetFromCurrentSystemTime(dt);
timecreated := CkDateTime__getAsTimestamp(dt,False);
prng := CkPrng_Create();
nonce := CkPrng__genRandom(prng,12,'hex');
secret := 'SECRET';
sb := CkStringBuilder_Create();
CkStringBuilder_Append(sb,nonce);
CkStringBuilder_Append(sb,timecreated);
CkStringBuilder_Append(sb,secret);
crypt := CkCrypt2_Create();
CkCrypt2_putHashAlgorithm(crypt,'sha1');
CkCrypt2_putEncodingMode(crypt,'base64');
digest := CkCrypt2__hashStringENC(crypt,CkStringBuilder__getAsString(sb));
sbNonce := CkStringBuilder_Create();
CkStringBuilder_Append(sbNonce,nonce);
CkStringBuilder_Encode(sbNonce,'base64','utf-8');
CkStringBuilder_Clear(sb);
CkStringBuilder_Append(sb,'UsernameToken Username="USERNAME", PasswordDigest="');
CkStringBuilder_Append(sb,digest);
CkStringBuilder_Append(sb,'", Nonce="');
CkStringBuilder_Append(sb,CkStringBuilder__getAsString(sbNonce));
CkStringBuilder_Append(sb,'", Created="');
CkStringBuilder_Append(sb,timecreated);
CkStringBuilder_Append(sb,'"');
Memo1.Lines.Add(CkStringBuilder__getAsString(sb));
CkHttp_SetRequestHeader(http,'X-WSSE',CkStringBuilder__getAsString(sb));
resp := CkHttpResponse_Create();
success := CkHttp_HttpJson(http,'POST',url,json,'text/json',resp);
if (success = False) then
begin
Memo1.Lines.Add(CkHttp__lastErrorText(http));
Exit;
end;
Memo1.Lines.Add('Http Status code: ' + IntToStr(CkHttpResponse_getStatusCode(resp)));
Memo1.Lines.Add('JSON response:');
Memo1.Lines.Add(CkHttpResponse__bodyStr(resp));
CkJsonObject_Dispose(json);
CkHttp_Dispose(http);
CkDateTime_Dispose(dt);
CkPrng_Dispose(prng);
CkStringBuilder_Dispose(sb);
CkCrypt2_Dispose(crypt);
CkStringBuilder_Dispose(sbNonce);
CkHttpResponse_Dispose(resp);