delphi调用webservice 转

 

如今 Web Service 已越来越火了,在DotNet已开发的Web Service中,Delphi 7如何方便的调用DotNet写的Web Service呢?
方法有两种,一种是在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;

上一篇:pku1365 Prime Land (数论,合数分解模板)


下一篇:Android 你应该知道的学习资源 进阶之路贵在坚持