一步一步用Delphi6实现Web Service

原创 2001年10月26日 11:27:00

      本文介绍的是如何用Delphi6开发Web Service程序,并把服务程序放在IIS Web服务器上提供给各种客户程序调用。

一编写服务程序

第一步:File----->New----->Other------>WebServices----->Soap Server Application

选择ISAPI/NSAPI Dynamic Link Library然后确定。生成一个框架。后面的大部分原代码都需要自己手工添加

第二步:定义一个接口单元。先通过向导生成一个空的单元文件,然后在此单元中实现基本的接口(Iinvokable)和定义以后客户端程序可以调用的方法,原代码如下:

unit unit1;
interface
uses  InvokeRegistry;//基本的结构和方法的定义都在此单元中,必须引用
type
IWebTest=interface(Iinvokable)//自定义的一个结构,继承自Iinvokable
['{A436B0D2-D490-4C80-820A-355D979E8704}']//通过Ctrl+Shift+G生成的一个GUID
function gettext():widestring;stdcall;//自定义的一个方法,也是以后客户可以调用的方法
end;
implementation

initialization//初始化
InvRegistry.RegisterInterface(Typeinfo(IWebTest));//通过此方法来注册接口
end.

第三步:实现第二步中所定义的接口和方法。先通过向导生成一个空的单元文件,然后定义自定义接口(IWebtest)的实现类。原代码如下:

unit Unit2;

interface
uses  InvokeRegistry,Unit1;//引用自定义的接口单元
type
TWebTest=class(TInvokableClass,IWebTest)//定义实现类,此类必须继承自TInvokableClass,并实现自定义接口
protected
function gettext():widestring;stdcall;//申明在自定义接口中所定义的方法
end;
implementation

{ Test }
procedure createwebtest(out obj:tobject);//此过程为创建类实例,必须手工添加
begin
obj:=TWebTest.Create;//创建类实例
end;
function TWebTest.gettext: widestring;//实现自定义方法
begin
Result:='Success';
end;
initialization//初始化
InvRegistry.RegisterInvokableClass(TWebTest,createwebtest);//注册自定义类
end.

第四步:编译整个应用程序,即产生一个*.dll的程序,把此程序拷贝到IIS的Cgi-bin目录下(或者其他可执行的目录,要根据自己的目录来选择),然后即可通过以下方式的链接访问到Wsdl:http://192.168.1.222/cgi-bin/*.dll/wsdl访问到以XML方式编码的Wsdl文件了,这就是客户端程序调用需要的文件。其中*.dll为你自己的应用程序的名字。192.168.1.222为你的Web服务器地址。Cgi-bin为你的Web服务器的可以执行Cgi程序的目录名称。

 

二编写客户程序:

第一步:新建一个Application。

第二步:File----->New----->Other------>WebServices----->Soap Services Importer

然后在Wsdl or Xml Schema Location中填入:http://192.168.1.222/cgi-bin/*.dll/wsdl/IWebTest,然后确定即生成了一个新的接口定义单元。

第二步:在主form上放上一个按钮和一个Httprio组件(在WebServices页上),并引用第二个单元(即通过Soap Services Importer自动生成的单元)

在Httprio的属性页上的WsdlLocation里面填上http://192.168.1.222/cgi-bin/*.dll/wsdl/IWebTest;然后在Httprio属性页上的Port和Service上选择上相应的数据即可。

第三步:书写客户调用程序,原代码如下:

procedure TForm1.Button1Click(Sender: TObject);
var
testobj:IWebTest;//定义对象
begin
testobj:=Httprio1 as IWebTest;//创建对象
showmessage(testobj.gettext);//调用方法
end;

以上是一个简单的例子,有兴趣的可以和我讨论。以上的例子还用java客户调用通过。我的邮箱是coala@21cn.com

 

jquery 横向滑动,下一步上一步。

#wizard { border: 5px solid #789; font-size: 12px; height: 530px; margin: 20px auto; overflow: hidde...
  • guo449211721
  • guo449211721
  • 2013年12月27日 15:06
  • 930

一步一步学ROP之linux_x86篇

0x00    本文仅解释说明蒸米大神一步一步学ROP之linux_x86篇,读者应先阅读这篇文章,遇到问题再来看我这篇文章。    阅读完这两篇文章后,我们会理解ROP(返回导向编程),DEP(堆栈...
  • jltxgcy
  • jltxgcy
  • 2016年02月19日 11:16
  • 2378

一步一步打造自己的VIM

一开始用vim的时候发现各种配置很繁琐,就静不下心去看,后来直接用别人写的“史上最强的vim配置”,虽然挺好用的,但是毕竟不是自己的,用着挺不舒服的。现在(可能突然脑抽了)打算开始根据自己需要的东西,...
  • Jacketinsysu
  • Jacketinsysu
  • 2016年03月09日 12:36
  • 883

一步一步跟我学hadoop(1)----hadoop概述和安装配置

这几年云计算大数据很火,借这个东风,今天开始学习apache的分布式计算框架hadoop,希望不要太落后。 Apache Hadoop是一个在大型集群的商品硬件上运行的应用程序的框架。Hadoop框架...
  • wuyinggui10000
  • wuyinggui10000
  • 2015年07月05日 23:08
  • 2283

一步一步跟我学习hadoop(3)----hadoop命令手册

上节我们学习了hadoop的eclipse插件安装和wordcount程序的运行,本篇对hadoop命令进行一个系统的了解 hadoop的命令通过HADOOP_HOME\bin\hadoop命令触发,...
  • wuyinggui10000
  • wuyinggui10000
  • 2015年07月11日 22:07
  • 1470

gdb 一步一步调试程序

例子: #include #include #include int main (int argc, char *argv[]) { time_t time_stamp; st...
  • duyiwuer2009
  • duyiwuer2009
  • 2015年01月23日 11:41
  • 1267

一步一步开发sniffer(Winpcap+MFC)(六)千呼万唤始出来,不抱琵琶也露面——将解析数据写到GUI上

最后一章是要将解析数据写的GUI上,先来回顾一下GUI长什么样,这样就对要在界面上写什么数据心中有数了,如下这两图:   可以看出,要写在GUI上的数据主要...
  • wqc359782004
  • wqc359782004
  • 2015年04月12日 17:11
  • 1045

一步一步教你用JCA

http://weli.iteye.com/blog/1566189 JCA在J2EE的世界中可能算是比较晦涩的一个领域了,比起大家经常接触到的WebService,ORM,JMS等经常高调出现的J...
  • caolaosanahnu
  • caolaosanahnu
  • 2014年03月03日 14:57
  • 993

GEF原理及实现系列(一、GEF概述)

GEF(Graphical Editor Framework)是一个图形化编辑框架,它允许开发人员以图形化的方式展示和编辑模型,从而提升用户体验。 本系列介绍GEF中的几个基本概念,包括如下部分: ...
  • m_hahahaha1994
  • m_hahahaha1994
  • 2016年06月19日 13:08
  • 933

带你一步一步揭开Rxjava2.0的神秘面纱(7)

前言 上一节里我们学习了只使用Observable如何去解决上下游流速不均衡的问题, 之所以学习这个是因为Observable还是有很多它使用的场景, 有些朋友自从听说了Flowable之后就觉得...
  • jungle_pig
  • jungle_pig
  • 2017年02月15日 08:36
  • 545
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一步一步用Delphi6实现Web Service
举报原因:
原因补充:

(最多只允许输入30个字)