Delphi REST API Post Sample - PullRequest
       3

Delphi REST API Post Sample

7 голосов
/ 16 марта 2012

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

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

Ответы [ 2 ]

7 голосов
/ 27 февраля 2014

Один вариант, используя некоторую часть нашей 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-контент, используя custom variant storage, который будет преобразован в текст JSON при отправке на сервер.

7 голосов
/ 17 марта 2012

Вы бы просто использовали компонент TIdHTTP в Indy и вызывали метод Post. Передайте URL-адрес в качестве первого аргумента и строку JSON в качестве второго аргумента. Примерно так:

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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...