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?
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;