转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> Delphi程序 >> 正文
Delphi编写soap服务器与客户端程序         ★★★★

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

作者:闵涛 文章来源:闵涛的学习笔记 点击数:834 更新时间:2009/4/23 18:28:27

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;其他的数据操作与普通的数据控件操作相同。


[Delphi程序]DELPHI6抢先研究:WebService/SOAP版的Hello worl…  [Delphi程序]Delphi 6 SOAP 源码中的BUG修正
[Delphi程序]delphi 开发axis客户端的soap应用(1)!  [Web开发]IT新技术名词:AJAX和SOAP——异步数据和XML获取
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台