SOAP 服务器和客户端应用程序 VCL + indy 演示?

Delphi 曾经包含一个用于 Web 服务的 demos 文件夹,但现在似乎不再包含这个文件夹了。

我刚刚尝试了 Delphi 7的演示项目(SOAPDMServerWAD,一个几乎没有 UI 的服务器,和 SOAPDMClient) ,但是即使在 Delphi 7中也无法让它们发挥作用。

如果任何人曾经在 Delphi XE 或 Delphi 2010中做过类似的演示工作,与旧的 SOAPDMServerWAD+SoapDMClient演示相同,在 Delphi XE 中工作,并且至少使用来自 Delphi SOAP Server 应用程序向导的最小用户界面,那将是完美的。

更新: 这个演示版本一直到2010年都在使用,但是使用了现在已经过时的 WAD (web-app-debug) ,我试图把它移植到新的 Indy runtime/web-app-development-harnessing-code上,但是我似乎无法让它工作。演示运行,但服务器没有用户界面,并且似乎没有运行任何 HTTP 服务器(通过 http://localhost:port/网址使用常规 Web 浏览器进行测试)。顺便说一句,试试谷歌一个演示,这个网址出现,我问不到一个小时前。谷歌,太可怕了。

Update2 看看下面我自己的答案,一个带有工作代码的链接很快就会出现。

22334 次浏览

我已经在 编码中心,编号28789上发布了 SOAP 的完整演示集。

它们包含了来自 WebServices文件夹的每一个 Delphi 2007时代的 SOAP 演示,现在已经针对 Delphi XE 和 XE2进行了更新,包括将旧的 WAD 服务器转换为新的 INDY VCL 服务器。你会觉得这很了不起,但其实不是。真的很简单。只需使用向导创建一个新项目,然后将 Web 服务接口和实现单元,以及属于旧演示中的任何其他单元添加到项目中。一旦它们被添加到项目中,它们就可以工作了。基本的演示 SOAP 服务器非常容易在 Delphi 中构建,一旦您有了一个可以工作的演示,您会发现修改和扩展它非常容易。

最能回答我上面问题的演示文件在 SOAPDataModule子文件夹中。

2007年的演示带来的基本问题有两个:

  1. WAD (web 应用程序调试器)不见了。您必须使用 Indy 服务器创建一个新的服务器,以达到最佳的演示目的,避免使用 WAD (已经没有了)或在 IIS 下设置 ISAPI 环境,这对于演示目的来说并不理想。我制作的新演示项目称为 SoapDMServerINDY,它由一个数据模块(datamod _ u。Pas)、 VCL 表单用户界面单元(IndyServerVCLFormUnit.pas)和 Indy Server Web 模块(称为 IndyServerWebModule.pas)。

  2. Delphi 2007的 demo 破产了,因为它有一个 Debug/Win32子文件夹,这个子文件夹中包含了现在的 demo 可执行文件,您需要进一步提升它。我修复了演示服务器,如果找不到数据文件,它会发出错误消息警告您,从而避免了神秘的“ XML 解析错误”。我还在一些演示中添加了一些错误检查,以便告诉你需要安装 Interbase 才能使这个演示工作,因为演示的 一些需要安装和运行 Interbase,而且需要一个名为 IBLOCAL 的别名才能存在,最好是一个名为 EMPLOYEE的表才能存在。

enter image description here

这个演示的元素是一个服务器(SoapDMServerINDY,基于 SOAPDMServerWAD 的代码)和连接到演示的客户机 SOAPDMClient,它有两个页面,一个页面将显示通过 DBGrid + 数据集远程访问的基本数据访问,第二个页面显示如何调用定制的 SOAP 方法。

要使用演示: 您必须启动服务器,单击开始按钮,然后启动客户端并单击 Connect。

enter image description here