Delphi REST API Post Sample

2019-03-27 18:19发布

Can someone post a simple example of a JSON POST request to an API using Delphi 2005. I have found numerous examples using GET but the API provider does not allow requests via HTTP GET and does not support URL encoding parameters.

I am brand new to calling REST services (have used SOAP in the past) so please let me know if you require more information.

2条回答
聊天终结者
2楼-- · 2019-03-27 18:44

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.

查看更多
beautiful°
3楼-- · 2019-03-27 18:51

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);
  http.HandleRedirects := true;
  http.ReadTimeout := 5000;
  jsonToSend:=TStringList.create;
  jsonToSend.Add('{ Your JSON-encoded request goes here }');
  Memo1.Lines.Text:=http.Post('http://your.restapi.url', jsonToSend);
  jsonToSend.Destroy;
  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.

查看更多
登录 后发表回答