delphi2010 开发及调试WebService 实例

 使用delphi已经10多年了,一直搞桌面程序开发,对Webservice一直很陌生,近来因工作需要,学习delphi开发WebService,担心遗忘,作此笔记。 特别感谢 中塑在线技术总监 大犇

 

 


一、delphi开发WebService


1、打开delphi,选择New--other--WebService,在右侧选择 SOAP Server Application,点击OK

 

 

delphi 开发 html5 delphi web开发_delphi 开发 html5



2、上一步点击OK后,会出现一个提示窗口,这里选择ISAPI 动态链接库,点击OK进入下一步


delphi 开发 html5 delphi web开发_IIS_02

 

 



3、此时会提示一个确认窗口,询问是否为SOAP模块创建接口,这样要选择YES,delphi会为您自动创建一个接口,否则自己动手写会很麻烦


delphi 开发 html5 delphi web开发_delphi 开发 html5_03

 

 



4、点击YES后,delphi会提示你输入 接口服务名称,这个名称在后面就是接口名和实现此接口的类名,这里我们键入MyTest,其他选项不要动,点击 OK


delphi 开发 html5 delphi web开发_IIS_04

 



5、点OK后,delphi会自动创建两个单元,一个是MyTestIntf接口单元,一个是MyTestImpl接口实现单元


delphi 开发 html5 delphi web开发_接口实现_05

 



6、在MyTestIntf接口单元里面,接口声明后面写入你的接口函数,这个函数就是后面给别人调用实现一定功能的函数。

注意:函数声明后面一定要加上stdcall约束参数传入方式,否则其他语言可能无法调用此接口函数


delphi 开发 html5 delphi web开发_IIS_06

 



7、切换到MyTestImpl接口实现单元,发现delphi已经为我们创建好了接口实现类TMyTest,在类的声明里面写上刚才的接口函数。当然也可以写入其他函数供你的接口函数内部调用,这里我重新构造了类的Create函数及析构函数


delphi 开发 html5 delphi web开发_delphi 开发 html5_07

 




8、保存项目,编译生成DLL文件,此时delphi编写WebService 就完成了,如此简单 


delphi 开发 html5 delphi web开发_delphi 开发 html5_08

 




二、delphi调试WebService


 1、打开IIS,新建网站,至于如何建立网站就不说了,给网站起名,选择物理路径等,把刚才编译好的DLL文件放入网站的物理目录里面


delphi 开发 html5 delphi web开发_delphi 开发 html5_09

 

 


2、将新建的网站目录浏览打开


delphi 开发 html5 delphi web开发_提示窗口_10

 



3、在网站的功能选项页,选择可执行程序映射,选择刚才的DLL文件,并在请求限制里面选择[执行],这个DLL就是IIS要调用执行的DLL


delphi 开发 html5 delphi web开发_delphi 开发 html5_11

 


delphi 开发 html5 delphi web开发_接口实现_12

 



4、选择  应用程序池,把里面的 32位兼容打开(我这个版本编译出来的是32位的)和托管管道模式选择为  Classic


delphi 开发 html5 delphi web开发_接口实现_13

 



5、在浏览器中键入网址 http://127.0.0.1:你的网站端口,回车打开网站,此时浏览器会转到你的网站物理目录下,显示出里面的所有文件,其中有一个就是我们需要的DLL


delphi 开发 html5 delphi web开发_接口实现_14

 



6、点击那个DLL文件,会出现下面这个界面


delphi 开发 html5 delphi web开发_提示窗口_15

 




7、点击WSDL,会出现如下界面。这是一个XML文档,描述WSDL的细节,浏览器地址栏中的地址是我们需要的,复制下来


delphi 开发 html5 delphi web开发_接口实现_16

 

 


8、返回delphi,新建一个VCL项目。接着选择New--other--WebService,选择WSDL importer,点击OK


delphi 开发 html5 delphi web开发_delphi 开发 html5_17

 


9、出现一个提示窗口,键入第7步得到的WSDL网址,如果WebService不在本机,注意IP地址要修改

 

10、点击NEXT ---NEXT--OK,delphi会自动引入一个单元,这个单元就是WebService的接口单元,里面会自动生成一个Get开头方法。
在VCL单元引用这个单元,声明一个变量,变量的类型就是Get开头方法的返回值类型  var  obj:IMyTest,使用这个Get方法给此变量赋值,接下来可以用这个变量调用接口函数   obj.HelloWord('哈哈哈')

至此delphi编写WebService及调用结束。

注:1、第7步得到的WSDL地址很重要,如果点击WSDL出现不了XML文档,说明有问题,这个WSDL地址是不可用的,很可能的原因是网站没配置好。2、如果这个WSDL地址在公网上,其他任何人知道此地址和接口函数格式,都可以调用哦