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

Ame*_*nti 4 .net delphi com winapi web-services

如果我想让Delphi Win32应用程序使用.Net webservice,我有哪些选择?

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

有问题的Delphi应用程序是用Delphi 2006编写的,但计划很快更新到Delphi XE.

vcl*_*per 12

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

档案| 新的| 其他...... | 德尔福项目| Web服务| WSDL导入器

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

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

var
  MyTestService: ITestService;
begin
  MyTestService := GetTestService();
  MyTestService.TestMethod;
end;
Run Code Online (Sandbox Code Playgroud)

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