我需要开发一个简约的Web服务。 它应该有两个功能:
senduserdata
(远程应用会调用“senduserdata”来发送有关用户的信息,例如“ID”和“金额”)sendconfirmation
(一个远程应用会告诉“所有可以处理进程ID
= X,注意事项是:NOTES
)过去我做了SOAP
dll,需要IIS
才能运行,因为在我的情况下部署是至关重要的,并且IIS并不总是可用的是有可能有一个独立的exe暴露{{{ 1}}(或SOAP
)接口?
答案 0 :(得分:0)
我使用RemObjects试验并在服务器+客户端项目组中将SOAP设置为通信协议几分钟后取得了成功(注意:我只需要服务器)。
使用VCL EXE我可以更轻松地部署(我有很多客户,并且访问他们的IIS来安装dll,有时候太难了)。
答案 1 :(得分:-1)
是的,您可以将任何TCP库用于包含HTTP服务器的Delphi,例如Internet Direct (Indy)。使用Indy,您可以在没有IIS的情况下创建独立的应用程序(或更好的Windows服务)。
在RESTful Web应用程序中,senduserdata
命令将通过类似
http://example.com/api/users
然后,客户端使用HTTP PUT或PATCH请求更新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)。