Sample code for 30+ languages & platforms
.NET Core C#

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 .NET Core C# Downloads

.NET Core C#
bool 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
string url = "https://api.omniture.com/admin/1.4/rest/?method=Report.Queue";

Chilkat.JsonObject json = new Chilkat.JsonObject();
json.UpdateString("reportDescription.reportSuiteID","rsid");
json.UpdateString("reportDescription.dateGranularity","hour");

Chilkat.Http http = new Chilkat.Http();

Chilkat.CkDateTime dt = new Chilkat.CkDateTime();
dt.SetFromCurrentSystemTime();
string timecreated = dt.GetAsTimestamp(false);

Chilkat.Prng prng = new Chilkat.Prng();
string nonce = prng.GenRandom(12,"hex");

string secret = "SECRET";

Chilkat.StringBuilder sb = new Chilkat.StringBuilder();
sb.Append(nonce);
sb.Append(timecreated);
sb.Append(secret);

Chilkat.Crypt2 crypt = new Chilkat.Crypt2();
crypt.HashAlgorithm = "sha1";
crypt.EncodingMode = "base64";
string digest = crypt.HashStringENC(sb.GetAsString());

Chilkat.StringBuilder sbNonce = new Chilkat.StringBuilder();
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("\"");

Debug.WriteLine(sb.GetAsString());

http.SetRequestHeader("X-WSSE",sb.GetAsString());

Chilkat.HttpResponse resp = new Chilkat.HttpResponse();
success = http.HttpJson("POST",url,json,"text/json",resp);
if (success == false) {
    Debug.WriteLine(http.LastErrorText);
    return;
}

Debug.WriteLine("Http Status code: " + Convert.ToString(resp.StatusCode));
Debug.WriteLine("JSON response:");
Debug.WriteLine(resp.BodyStr);