======================================================
注:本文源代码点此下载
======================================================
from http://www.cnblogs.com/povoz/archive/2008/04/04/1137173.html
1.更新delphi soap runtime and importer。
这一点非常的注要,因为原本delphi 7自带的wsdlimp.exe无法正确生成wcf服务代理。codegear官方已经给出了更新,而且可以免费下载。
下载地址:http://cc.codegear.com/item/24535
下载后的更新安装过程,请参照文件包中的readme.html文件。
2.生成wcf访问代理。
因为前面我们已经更新了delphi soap runtime and importer,现在可以在c:\program files\borland\delphi7\bin找以wsdlimp.exe,更新后的版本为2.2.10138。
在“命令提示符”中输入:wsdlimp http://localhost/wcfservice/service.svc?wsdl 就可以在当前目录下生成一个service.pas文件。
3.创建delphi 7应用程序。
创建一个delphi 7应用程序,并引入上面我们创建的service.pas文件。然后在主窗体中加入测试代码:
procedure tform1.button1click(sender: tobject);
var
a, b, c:integer;
begin
a := strtoint(edit1.text);
b := strtoint(edit2.text);
c := getiservice.add(a, b);
label1.caption := inttostr(c);
end;
到这里,通过delphi 7访问wcf服务已经实现了。但是要说的是这仅仅是第一步,在delphi 7中是否可以充分利用wcf服务的功能还有待进一步摸索。
4月5日更新:
进一步摸索尝试之后,发现delphi自身的soap runtime对web service的新标准、特性支持并不好。
第三方库对soap也有支持,但效果并不理想。
pure soap网络上有一些介绍,但没有找到下载。
indysoap目前版本是1.0,官方说明支持soap 1.2,但试用没有成功。
ip*works支持soap,但仅限soap 1.1标准。
结论:在delphi中仅能使用wcf中的基本功能,也就是兼容asmx模式。
======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/