Question

I try to submit Delphi POST request to Piwik as descibed here: http://piwik.org/docs/tracking-api/reference/#toc-advanced-bulk-tracking-requests.

My Delphi implementation is shown below:

  FPiwikRequest := '';
  FPiwikRequest := FPiwikRequest + Format('?cvar=PAGE_%s&', ['something']);
  FPiwikRequest := FPiwikRequest + Format('action_name=6new_%s&', ['ActionPage']);
  FPiwikRequest := FPiwikRequest + Format('idsite=%d&', [3]);
  FPiwikRequest := FPiwikRequest + Format('rec=%d&', [1]);
  FPiwikRequest := FPiwikRequest + Format('url=%s&', ['http://localhost/analytics/index45.html']);
  FPiwikRequest := FPiwikRequest + Format('urlref=%s&', ['http://localhost/analytics/index13.html']);
  FPiwikRequest := FPiwikRequest + Format('_id=%s&', ['231e3849e534a3c6']);
  FPiwikRequest := FPiwikRequest + Format('rand=%d', [Random(1000)]);
  json := SO;
  json.O['requests'] := SA([]);
  json.A['requests'].S[0] := FPiwikRequest;
  json.A['requests'].S[1] := FPiwikRequest_2;
  json.S['token_auth'] := 'ffff9fb80b9558e4529fe96902dffff';
  FPiwikRequest := json.AsString;
  HTTPClient.POST(PIWIK_HOME + FPiwikRequest, response); //HTTPClient => idHTTP class

After submitting the request Piwik script processes only last request json.A['requests'].S[1] from the submitted bulk requests.

*When I submit same bulk request from Python then the Piwik process both requests from the submitted bulk requests.

Do you have any ideas about such Delphi POSTing behavior?

Was it helpful?

Solution

Sorry, for this post. Answer is simple :) and one of the approaches is shown below.

So, you should add Params to method POST

LRequestParams := TStringStream.Create();
try
  LRequestParams.WriteString(FPiwikRequest);  
  HTTPClient.POST(PIWIK_HOME, LRequestParams, response);
finally
  LRequestParams.Free;   
end;
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top