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 при отправке на сервер.