分享
 
 
 

Delphi编写soap服务器与客户端程序

王朝delphi·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

Delphi编写soap服务器与客户端程序

使用三层结构开发客户机、服务器软件已成为c/s系统中的主流;下面是自己在开发系统中的一些体会;本文已delphi7(windows)或kylix3(linux9)为环境描述:

1、编写服务器程序

首先,看看soap服务器的建立,在delphi7中的新建栏目中,选择“ WebServices”如下图,选择“Soap Server Application”

点击“ok”,开始选择创建服务程序的类型:

ISAPI/NSAPI Dynamic Link Library –将生成一个.dll文件,可以用IIS来进行发布;

CGI Stand-alone executable 将生成一个CGI程序;注意:CGI程序一般比较占用内存

Apache 1.x;Apache 2.x 可以用Apache来发布;可以实现在不同平台上用行;

Web App Debugger executable 用webappdbg.exe运行的一个方便调试的程序;

我们这里选取Web App Debugger executable ;主要是方便进行调试,但作为项目运行最好选取IIS(把编译好的程序dll放在发布目录下;在iis主目录配置选项下选取“脚本和可执行程序”,在浏览器输入相应的地址即可)或Apache来作为soap服务器的载体。

接下来会提示是否创建soap module ;我在这里选取了“是”;服务端程序的编写需注意对客户端并发访问的处理。

将会生成:

myTestIntf.pas接口定义文件内容:

unit myTestIntf;

interface

uses InvokeRegistry, Types, XSBuiltIns;

type

ImyTest = interface(IInvokable)

['{FA05E275-DF6F-4C8D-BBF6-3F946B187BB3}']

function Login(name:string;pwd:string):boolean;stdcall; //需要发布的方法

end;

implementation

initialization

InvRegistry.RegisterInterface(TypeInfo(ImyTest));

end.

myTestImpl.pas接口实现文件内容:

unit myTestImpl;

interface

uses InvokeRegistry, Types, XSBuiltIns, myTestIntf;

type

TmyTest = class(TInvokableClass, ImyTest)

public

function Login(name:string;pwd:string):boolean;stdcall;

end;

implementation

{ TmyTest }

function TmyTest.Login(name, pwd: string): boolean; //自己定义的方法的实现代码

begin

if ((name='1') and (pwd='abc')) then

result:=true

else

result:=false;

end;

initialization

InvRegistry.RegisterInvokableClass(TmyTest);

end.

用delphi7带的webappdbg或iis启动发

(1) 用webappdbg做发布,点击delfault url 即可看到发布的接口;

(2) 用iis做发布,在浏览器中输入“http://localhost/a/Project1.dll”发布的地址;

2、导出soap接口的xml文档

点击“ImyTest”,把文件另存“ImyTest.xml”即可。

3、客户端程序的编写

首先,在下图中把上面导出的xml文件导入到你所用的客户端程序;

(1)如果服务端的接口是一个方法:在客户端放入THTTPRIO控件,选取其中wsdl

的文件地址或URL即可;在代码中调用接口的列子如下:

if (HTTPRIO1 as ImyTest).Login('1','abc') then

showmessage('true')

else

showmessage('false');

(2)如果服务端的接口是一个数据模块:在客户端放入TSoapConnection控件;设置它的URL即可;然后可以放置其他的数据控件(TClientDataSet)来在RemoteServer选项,选择上面的TSoapConnection;其他的数据操作与普通的数据控件操作相同。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有