.net - 如何从 Delphi Win32 应用程序访问 .Net Web 服务?

标签 .net web-services delphi winapi com

如果我想要让 Delphi Win32 应用程序能够使用 .Net Web 服务,我有哪些选项?

可以直接互动吗?或者我是否必须借助中间人软件与每个 COM 的 Delphi 应用程序进行通信?

相关的 Delphi 应用程序是用 Delphi 2006 编写的,但计划很快更新到 Delphi XE。

最佳答案

当您的项目在 Delphi IDE 中打开时,请转到:

文件 |新 |其他... |德尔福项目|网络服务 | WSDL 导入器

现在 WSDL 导入器向导将启动。输入您的 Web 服务的 WSDL 地址,然后按“下一步”。它将向您展示有关如何处理 WSDL 的不同选项。如果需要,您可以更改选项。最终,当向导完成时,您的项目中将有一个新单元,其中包含 Web 服务的客户端包装器类和接口(interface)。现在您可以以不同的方式使用此类。 最简单的方法是调用名为 Get(Your_WebService_Name) 的函数。例如,如果您的 Web 服务名称是 TestWebService,则该函数将被命名为 GetTestWebService。

该函数将返回一个接口(interface),该接口(interface)代表与您的Web服务相同的接口(interface),现在您可以调用该接口(interface)的方法,它会自动将请求传输到远程服务器,并将结果返回给您。示例源代码可能如下所示:

var
  MyTestService: ITestService;
begin
  MyTestService := GetTestService();
  MyTestService.TestMethod;
end;

另一种选择是手动设置 THttpRio 对象并使用它。实际上,这就是 Get(Your_WebService_Name) 函数内部执行的操作。

关于.net - 如何从 Delphi Win32 应用程序访问 .Net Web 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5881070/

相关文章:

java - 如何从基于 Java 的 Web 服务调用具有日期输入的 Oracle 过程?

c# - 向 Azure Web 应用程序上托管的 SOAP WCF 添加简单的安全性

xml - FindNode 具有两个等于节点

delphi - 如何保存和加载我的 svTree 数据结构?

.net - 列表框在自动回发时滚动到顶部

c# - C# 中的 0.0/0.0 不会抛出 "Attempted to divide by zero."?

.net - 可以将 WinForms 应用程序配置为作为 "x86"运行而无需重新编译吗?

java - jboss 无法处理超过 3000 个请求

performance - 加快调整网格列大小的过程

c# - 如何在 LINQ C# 中从我的数据库中获取数据?