准备:新建两个文件夹,名字分别是服务器,客户端
1、构造一个Web Services服务器
(1)在file→new→other→WebService点图中蓝色选项,然后点ok再点ok
(2)在Service name下的方框里写MyHello,然后保存,把unit1,改成main,都保存到服务器文件夹下。
(3)在MyHelloIntf.pas的IMyHello接口中加入functionWelcome(name:string):string;stdcall;
(4)在MyHelloImpl.pas中的TMyHello实现此方法
functionWelcome(name:string):string;stdcall;
function TMyHello.Welcome(name:string):string;
begin
result:='Welcome '+name;
end;然后保存
(5)新建一个标准Application,把所有文件保存在刚才文件夹服务器中(同一目录).文件名默认,在Unit1中的Uese中添加IdHTTPWebBrokerBridge,
可能还要在工程的Searchpath加入\Source\Indy 是Delphi的安装目录
方法是project→options点击Directories/Conditionals然后点第三个方框右边的…按钮然后选中source下的Indy
然后‘确定’,然后点击如图下面的ADD按钮,接着ok,ok
(6)在form1上放一个lable,写上"Stand Alone Web Service"(这个不走基本没有用,只是为了区别)
(7)在TForm1的private中加入一个变量ser:TIdHTTPWebBrokerBridge;
Uses加入main,MyHelloIntf,MyHelloImpl然后project→Add to project然后选中这个三个确定就可以了
(8)在OnFormCreate事件上写
ser:=TIdHTTPWebBrokerBridge.Create(self);
ser.DefaultPort:=5678;
ser.Active:=true;
ser.RegisterWebModuleClass(TWebModule1);
(9)运行程序,打开IE,输入http://localhost:5678/.结果大家都想到了
2、构造一个Web Services客户端
新建一个标准Application
运行刚才写的服务器Application
和第一中的方法一样找到WSDL然后打开
在URL中输入http://localhost:5678/wsdl/IMyHello然后打开在服务器中的project执行程序
然后再在这个界面按Next几次
保存所有文件到文件夹客户端,其余默认,在Unit1中加入usesIMyHello1.pas,
放一个TButton,写上下面的代码,运行.
procedure TForm1.Button1Click(Sender: TObject);
var
I:IMyHello;
begin
I:=GetIMyHello;
ShowMessage(I.Welcome('black man'));
I:=nil;
end;
Game over!
领取专属 10元无门槛券
私享最新 技术干货