在Delphi的Intraweb中实现轻量级的WebServices

来源:互联网 发布:手机淘宝能买彩票么 编辑:程序博客网 时间:2024/06/04 19:02

    使用Delphi开发Intraweb应用时,编译的结果有三种:普通exe,windows服务,ISAPI。而我们在开发Web服务程序的时候,大多选择ISAPI的方式进行发布,这就要求有IIS等HTTP服务。intraweb的前两种发布是自带HTTP服务的,我们可以想一些办法来利用该HTTP服务实现一个轻量级的WebServices,并且可以将一些配置管理,或者其他的BS界面整合到一个应用中,这对于中小型应用来说安装管理十分方便。另外,以前写Windows服务程序,有一个问题一直困扰我,这就是和其他桌面程序的交互,实现交互的方式很多。但我想没有一种比Web服务的调用更简单,这在调用效率要求不高的情况下,也是一个不错的途径。

    要想在Intraweb中实现WebServices,主要有以下步骤:

  • 在Delphi原来的WSDLPub.pas文件的基础上创建我们自己的IW_WSDLPub.pas文件
  • 创建一个新的单元文件IW_WebSVC.pas,对THTTPSoapDispatcher、TWSDLHTMLPublish、THTTPSoapPascalInvoker进行封装,以方便使用IW_WSDLPub.pas
  • 创建一个普通的Intraweb工程,在ServerController单元中对事件OnBeforeDispatch进行处理,将对HTTP请求的处理转发到IW_WebSVC.pas中的DoServerControllerBaseBeforeDispatch过程处理
  • 使用Delphi的向导,创建Soap接口和实现,进行和以前相同的Web服务编程。

    OK,所有的工作到此就和以前一样了。