Delphi REST API后期示例

Bri*_*nKE 7 delphi api rest post

有人可以使用Delphi 2005向API发布一个简单的JSON POST请求示例.我发现了许多使用GET的示例,但API提供程序不允许通过HTTP GET发出请求,并且不支持URL编码参数.

我是调用REST服务的新手(过去使用过SOAP),如果您需要更多信息,请告诉我.

Arn*_*hez 8

一种选择,使用我们的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;
Run Code Online (Sandbox Code Playgroud)

请注意,您可以在此处使用自定义variant存储构建JSON内容,该存储在发送到服务器时将转换为JSON文本.


Jef*_*ite 7

您只需使用Indy的TIdHTTP组件并调用该Post方法即可.将URL作为第一个参数传递,将JSON字符串作为第二个参数传递.像这样的东西:

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;
Run Code Online (Sandbox Code Playgroud)

我假设您已经能够对JSON进行编码和解码,而您只是在询问如何使用Delphi执行HTTP帖子.

  • 此代码每次调用都会泄漏TStringList实例 (4认同)