Delphi REST API Post Sample
You would just use Indy's TIdHTTP
component and call the Post
method. Pass the URL as the first argument and your JSON string as the second argument. Something like this:
procedure TForm1.Button1Click(Sender: TObject);
var
jsonToSend: TStringList;
http: TIdHTTP;
begin
http := TIdHTTP.Create(nil);
try
http.HandleRedirects := True;
http.ReadTimeout := 5000;
jsonToSend := TStringList.create;
try
jsonToSend.Add('{ Your JSON-encoded request goes here }');
http.Post('http://your.restapi.url', jsonToSend);
finally
jsonToSend.Destroy;
end;
finally
http.Destroy;
end;
end;
I'm assuming you are already able to encode and decode the JSON and that you were just asking how to perform an HTTP post using Delphi.
One option, using some part of our mORMot Open Source framework:
uses SynCrtSock, SynCommons;
var t: variant;
begin
TDocVariant.New(t);
t.name := 'john';
t.year := 1982;
TWinHTTP.Post('http://servername/resourcename',t,'Content-Type: application/json');
end;
Note that here you can construct your JSON content using a custom variant
storage, which will be converted as JSON text when sent to the server.