Hui, den ganzen JSON-Request in den Parameter zu packen, ist aber auch mutig.
Hier mal ein kleiner Ausschnitt, wie man es machen könnte und die Anfrage mittels eines TRESTRequest loswerden kann:
Delphi-Quellcode:
[...]
type
TmyClass =
class
[...]
RestRequest: TRESTRequest;
procedure SendData (...);
end;
[...]
procedure TmyClass.SendData (...);
var
jWriter: TJsonTextWriter;
begin
jWriter:=TJsonTextWriter.Create(TStringWriter.Create);
try
jWriter.WriteStartObject;
// hier nur ein einfaches Objekt mit zwei Feld/Wert-Paaren
jWriter.WritePropertyName('
headFields');
jWriter.WriteValue('
wuppdi');
jWriter.WritePropertyName('
tableFields');
jWriter.WriteValue('
foobar');
jWriter.WriteEndObject;
RestRequest.Method:=rmPOST;
RestRequest.AddBody(jWriter.Writer.ToString,ctAPPLICATION_JSON);
RestRequest.Resource:='
/location/to/change/data';
RestRequest.Execute;
except
[... Fehlerbehandlung ...]
end;
[...]
jWriter.Writer.Free
jWriter.Free;
end;
Vielleicht hilft dir das weiter.
Anstelle des jWriters, wie ich das hier gemacht habe, kannst du den Json-String sicherlich genauso auch mit dem jBuilder zusammenbasteln. Hauptsache im Body vom RestRequest landet der String.