ChatGPT解决这个技术问题 Extra ChatGPT

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

Delphi 曾经包含一个 web 服务的 demos 文件夹,但似乎不再包含这个。

我刚刚尝试了 Delphi 7 演示项目(SOAPDMServerWAD,一个几乎没有 UI 的服务器,以及 SOAPDMClient)并且无法让它们运行,即使在 Delphi 7 中也是如此。

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

更新: 该演示一直显示到 Delphi 2010,但使用现已过时的 WAD(web-app-debugger),我尝试将其移植到新的 Indy runtime/web-app-development-harnessing-code,但我可以似乎没有让它工作。演示运行,但服务器没有用户界面,并且似乎没有运行任何 HTTP 服务器(使用常规网络浏览器通过 http://localhost:port/ url 进行测试。顺便说一句,尝试谷歌搜索演示,这个 url 来了起来,不到一个小时前我问了。这太可怕了,谷歌。

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

[offtopic] 几个月前,我不得不在 Delphi 中创建一个非常简单的 SOAP 客户端,结果证明这非常令人头疼并且浪费生产力,我建议同时寻找替代方案。
@Dorin - 使用 WSDL 导入器非常容易创建 SOAP 客户端。
@Robert 这不是让人头疼的部分,而是文档和缺乏演示等。对于一个简单的客户端,我不得不学习太多关于 SOAP 的知识,这对我没有太大的帮助,从我所理解的Java 更容易,但还没有尝试过 => 我是 delphi 的死忠用户。
最简单的肥皂是 .net wcf
edn.embarcadero.com/article/40973 有一个教程视频。相关的?

W
Warren P

我在 CodeCentral as item 28789 上发布了完整的 SOAP 演示集。

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

最能回答我上面提出的问题的演示位于 SOAPDataModule 子文件夹中。

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

WAD(网络应用调试器)不见了。您必须使用 Indy 服务器创建一个新服务器,以实现最佳演示目的,使您免于使用 WAD(已消失)或在 IIS 下设置 ISAPI 环境,这对于演示目的而言并不理想。我制作的新演示项目名为 SoapDMServerINDY,它由一个数据模块 (datamod_u.pas)、一个 VCL 表单用户界面单元 (IndyServerVCLFormUnit.pas) 和一个名为 IndyServerWebModule.pas 的 Indy Server Web 模块组成。 Delphi 2007 演示失败了,这要归功于演示可执行文件现在所在的 Debug/Win32 子文件夹的新做法,您需要更进一步。我修复了演示服务器,以便在无法找到数据文件时向您发出错误消息警告,从而使您免于神秘的“XML 解析错误”。我还在一些演示中添加了一些错误检查,以便它告诉您需要安装 interbase 才能使此演示正常工作,因为某些演示需要安装和运行 Interbase,并且需要存在名为 IBLOCAL 的别名,并且最好存在一个名为 EMPLOYEE 的表。

https://i.stack.imgur.com/m1Kzh.png

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

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

https://i.stack.imgur.com/Vpoti.png


为努力喝彩!如果您不能发布固定的演示,也许差异/补丁可以吗?
这是开源社区的古老原则;抓紧自己的痒,分享结果,希望它不仅能让每个人受益,而且随着时间的推移建立一个社区,可以一起做我们无法单独做的事情。因此,如果您发现问题,请向我发送错误报告。

关注公众号,不定期副业成功案例分享
关注公众号

不定期副业成功案例分享

领先一步获取最新的外包任务吗?

立即订阅