Delphi REST API Post образец

может ли кто-нибудь опубликовать простой пример запроса JSON POST в API с помощью Delphi 2005. Я нашел множество примеров использования GET, но поставщик API не разрешает запросы через HTTP GET и не поддерживает параметры кодирования URL.

Я совершенно новичок в вызове служб REST (использовал мыло в прошлом), поэтому, пожалуйста, дайте мне знать, если вам нужна дополнительная информация.

2 ответов


вы просто используете Indy's TIdHTTP компонент и вызвать Post метод. Передайте URL-адрес в качестве первого аргумента и строку JSON в качестве второго аргумента. Что-то вроде этого:--4-->

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.

Я предполагаю, что вы уже можете кодировать и декодировать JSON и что вы просто спрашивали, как выполнить http-сообщение с помощью Delphi.


один вариант, используя некоторую часть нашего mORMot фреймворк с открытым исходным кодом:

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;

обратите внимание, что здесь вы можете создать свой контент JSON, используя таможни variant для хранения, который будет преобразован в текст JSON при отправке на сервер.