web-services - 使用 IIS 在 Delphi 2009 中创建 REST Web 服务

标签 web-services delphi iis rest

是否可以在 Delphi 2009 中创建在 IIS 上运行的 REST Web 服务?我已经查看了网络代理和网络快照网络服务器应用程序,但到目前为止还无法弄清楚。如果可能的话我将如何让它发挥作用?

最佳答案

REST Web 服务在 Delphi 中非常简单...事实上太简单了,因为有时它被掩盖并隐藏在复杂的 WebSnap 演示中。您可以使用 Web 代理、WebSnap、Indy、Synapse 或其他通用 HTTP 服务器组件。我不会在您第一次 RESTful 郊游时使用 WebSnap。我会坚持使用 WebBroker,或者更简单的是 Indy。

文件->新建->其他网上经纪商->网络服务器应用程序

您可以选择 ISAPI DLL 或 Web 应用程序调试器...对于您的第一个,我推荐使用 WAD 应用程序。 (事实上​​,任何 Web 应用程序都应该从服务器的 WAD 开始,然后创建客户端测试器应用程序,以便以后的调试更加容易。)如果选择 WAD,则为其指定一个名称 - 例如 MyFirstREST。这将创建一个具有默认 Web 模块的项目,该模块使用简单的 HTML 文档响应任何请求。

右键单击 Web 模块,单击“操作编辑器”弹出菜单项,然后通过自定义 PathInfo 设置创建 RESTful 命令。然后您只需定义事件来响应这些命令。

对于 Indy,只需启动一个新的 Windows 服务应用程序并将 TidHTTPServer 组件放到服务数据模块上即可。然后为简单的 HTTP GET 请求 (http://yourserver/customer?id=1) 定义 OnCommandGET,并为 POST 请求定义 OnCommandOther。

有一个 TIdHTTPResponseInfo 和一个 TIdHTTPResponseInfo 发送到事件中...只需查看 GET 的 QueryParams 即可提取传入的参数并填充响应的 ContentStream(或 ContentText)以及 ContentType。

可以在线找到许多有关 REST 实现的教程 - 一个来自 IBM:http://www.ibm.com/developerworks/webservices/library/ws-restful/

通常,您使用 RESTful 服务器来处理 XML 请求和响应,但实现服务器的方式没有限制。这完全取决于客户的期望。如果您也控制客户端,那么您甚至可以通过序列化 TObject 后代来来回传递对象。

关于web-services - 使用 IIS 在 Delphi 2009 中创建 REST Web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6039214/

相关文章:

web-services - 实时货币网络服务

java - SAAJ java 客户端 - 添加身份验证

php - OpenCart与会计软件的集成

http - 如何更快地分析 HTTP Post 响应

sql-server - 如何将 SQL BACKUP 命令的结果输出获取到 Delphi 程序中?

javascript - 有没有办法获取我的 Stack Exchange 统计数据?

德尔福快速报告 : Band order to achieve detail-child-child-child banding?

wcf - 匿名身份验证不适用于 WCF 服务 : "..... The authentication header received from the server was ' '"

javascript - 在 IIS 上使用 HTML5/Javascript 项目和单独的 ASP.NET Web API 项目部署解决方案

amazon-web-services - Elastic Beanstalk 将 iis 站点的 http 重定向到 https