Delphi中最简单的Web服务

时间:2014-02-21 08:52:41

标签: web-services delphi delphi-xe2

我需要开发一个简约的Web服务。 它应该有两个功能:

  1. senduserdata(远程应用会调用“senduserdata”来发送有关用户的信息,例如“ID”和“金额”)
  2. sendconfirmation(一个远程应用会告诉“所有可以处理进程ID = X,注意事项是:NOTES
  3. 过去我做了SOAP dll,需要IIS才能运行,因为在我的情况下部署是至关重要的,并且IIS并不总是可用的是有可能有一个独立的exe暴露{{{ 1}}(或SOAP)接口?

2 个答案:

答案 0 :(得分:0)

我使用RemObjects试验并在服务器+客户端项目组中将SOAP设置为通信协议几分钟后取得了成功(注意:我只需要服务器)。

使用VCL EXE我可以更轻松地部署(我有很多客户,并且访问他们的IIS来安装dll,有时候太难了)。

答案 1 :(得分:-1)

是的,您可以将任何TCP库用于包含HTTP服务器的Delphi,例如Internet Direct (Indy)。使用Indy,您可以在没有IIS的情况下创建独立的应用程序(或更好的Windows服务)。

在RESTful Web应用程序中,senduserdata命令将通过类似

的URL实现
    http://example.com/api/users

然后,客户端使用HTTP PUTPATCH请求更新users资源。

用户ID为774422的senduserdate调用将编写为

    LStream := TStringStream.Create('{ "amount":100.50, "currency":"EUR" }');
    try
      HTTP := TIdHTTP.Create;
      try
        HTTP.Put('http://example.com/api/users/774422', LStream);
      finally
        HTTP.Free;
      end;
    finally
      LStream.Free;
    end;

在服务器端的Delphi应用程序中,TIdHTTPServer组件然后侦听/ rest / users资源的HTTP请求,并在OnCommandOther事件处理程序中提取请求正文字符串,解析它并应用使用资源路径中给出的ID对用户所做的更改(/ 774422)。