方法有两种,一种是在Delphi 7中WSDLImp工具将DotNet写的Web Service转化为Interface 单元文件,另一种方法是用MS 提供的 Microsoft Soap Toolkit(MSST) 工具。
下面是用WSDLImp工具调用C# 写一个简单的 Web Service:
启动 VS.Net工具,在C#项目中,选择 ASP.Net Web服务,在代码中写入
[WebMethod]
public double add(double s1, double s2)
{
return s1+s2;
}
生成配件后,在IE 中输入 http://localhost/ASPNETWS/Service1.asmx
会看到 有一个 add 的链接,点击进入,并调用测试:
如,输入 s1为 34, s2为 235.34 调用后为
<?xml version="1.0" encoding="utf-8" ?>
<double xmlns="http://tempuri.org/">269.34000000000003</double>
输入 http://localhost/ASPNETWS/Service1.asmx?WSDL,可看到WSDL单元
测试成功后,在Delphi 7的Bin目录找到 WSDLImp.exe工具,并拷到一处,
在 命令提示符 中输入 WSDLImp http://localhost/ASPNETWS/Service1.asmx?WSDL
会在当前目录中生成一个 Service.pas 文件,这就是要在Delphi中使用的Interface文件。
启动Delphi 7,新建 Application工程,放入一个TButton组件;
在uses 中加入 InvokeRegistry, Rio, SOAPHTTPClient, Service1;
procedure TForm1.btn_CShapWSClick(Sender: TObject);
var
WSResult: Double;
WSIServer: Service1Soap;
begin
WSIServer:= GetService1Soap(true,'',HTTPRIO1);
WSResult:= WSIServer.add(23,342.234);
showmessage('WSResult: '+ FloatToStr(WSResult));
end;