DelphiXE7中创建WebService(服务端+客户端)

相关资料:http://www.2ccc.com/news/Html/?1507.html

DelphiXE7新建WebService具体操作
1.打开“DelphiXE7”->“File”->“New”->“Other”
2.“New Items”->“Delphi Projects”->“WebSrvice”->“SOAP Server Application”
3.“Stand-alone application”->“Next”
4.“VCL application”->“Next”
5.“8080”->“Finish”
6.“Create Interface for SOAPmodule?”->“Yes”
7.“Add New WebService”->输入服务名字“MyData”->“OK”
8.保存全部工程文件
9.在“WebModuleUnit1”单元中放入控件:
FDConnection1
FDPhysMSSQLDriverLink1
FDQuery1
DataSetProvider1
ClientDataSet1
10.双击FDConnection1->Definition->Driver ID:->“MSAcc”->Daabase->“E:\MyData.mdb”->LoginPrompt:=False->Connected:=True
11.FDQuery1->Connection:=FDConnection1->SQL:=“select * from usesr”->Active:=True
12.DataSetProvider1->DataSet:=FDQuery1
13.ClientDataSet1->ProvideName:=DataSetProvider1

服务端-实例代码:

 1 unit WebModuleUnit1;
 2
 3 interface
 4
 5 uses System.SysUtils, System.Classes, Web.HTTPApp, Soap.InvokeRegistry,
 6   Soap.WSDLIntf, System.TypInfo, Soap.WebServExp, Soap.WSDLBind, Xml.XMLSchema,
 7   Soap.WSDLPub, Soap.SOAPPasInv, Soap.SOAPHTTPPasInv, Soap.SOAPHTTPDisp,
 8   Soap.WebBrokerSOAP, FireDAC.Stan.Intf, FireDAC.Stan.Option,
 9   FireDAC.Stan.Error, FireDAC.UI.Intf, FireDAC.Phys.Intf, FireDAC.Stan.Def,
10   FireDAC.Stan.Pool, FireDAC.Stan.Async, FireDAC.Phys, FireDAC.Phys.MSAcc,
11   FireDAC.Phys.MSAccDef, FireDAC.Phys.MSSQLDef, FireDAC.Stan.Param,
12   FireDAC.DatS, FireDAC.DApt.Intf, FireDAC.DApt, Datasnap.DBClient,
13   Datasnap.Provider, Data.DB, FireDAC.Comp.DataSet, FireDAC.Comp.Client,
14   FireDAC.Phys.ODBCBase, FireDAC.Phys.MSSQL;
15
16 type
17   TWebModule1 = class(TWebModule)
18     HTTPSoapDispatcher1: THTTPSoapDispatcher;
19     HTTPSoapPascalInvoker1: THTTPSoapPascalInvoker;
20     WSDLHTMLPublish1: TWSDLHTMLPublish;
21     FDConnection1: TFDConnection;
22     FDPhysMSSQLDriverLink1: TFDPhysMSSQLDriverLink;
23     FDQuery1: TFDQuery;
24     DataSetProvider1: TDataSetProvider;
25     ClientDataSet1: TClientDataSet;
26     procedure WebModule1DefaultHandlerAction(Sender: TObject;
27       Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
28   private
29     { Private declarations }
30   public
31   function GetInfo: widestring;
32   function SetSQL(ASQL: widestring): widestring;
33     { Public declarations }
34   end;
35
36 var
37   WebModuleClass: TComponentClass = TWebModule1;
38
39 implementation
40
41 {%CLASSGROUP ‘Vcl.Controls.TControl‘}
42
43 {$R *.dfm}
44
45 function TWebModule1.GetInfo: widestring;
46 begin
47   ClientDataSet1.Close;
48   ClientDataSet1.Open;
49   Result := ClientDataSet1.XMLData;
50   ClientDataSet1.Close;
51 end;
52
53 function TWebModule1.SetSQL(ASQL: widestring): widestring;
54 begin
55   FDQuery1.Close;
56   FDQuery1.SQL.Text := ASQL;
57   try
58     FDQuery1.ExecSQL;
59     Result := ‘成功 ‘;
60   except
61     Result := ‘失败‘;
62   end;
63 end;
64
65 procedure TWebModule1.WebModule1DefaultHandlerAction(Sender: TObject;
66   Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
67 begin
68   WSDLHTMLPublish1.ServiceInfo(Sender, Request, Response, Handled);
69 end;
70
71 end.
 1 { Invokable interface IMyData }
 2
 3 unit MyDataIntf;
 4
 5 interface
 6
 7 uses Soap.InvokeRegistry, System.Types, Soap.XSBuiltIns;
 8
 9 type
10
11   { Invokable interfaces must derive from IInvokable }
12   IMyData = interface(IInvokable)
13   [‘{865DBF5C-8DE1-4D01-AE04-16D04A3F5EF0}‘]
14     function GetInfo:widestring;stdcall;
15     function SetSQL(ASQL: widestring): widestring;stdcall;
16     { Methods of Invokable interface must not use the default }
17     { calling convention; stdcall is recommended }
18   end;
19
20 implementation
21
22 initialization
23   { Invokable interfaces must be registered }
24   InvRegistry.RegisterInterface(TypeInfo(IMyData));
25
26 end.
 1 { Invokable implementation File for TMyData which implements IMyData }
 2
 3 unit MyDataImpl;
 4
 5 interface
 6
 7 uses Soap.InvokeRegistry, System.Types, Soap.XSBuiltIns, MyDataIntf;
 8
 9 type
10
11   { TMyData }
12   TMyData = class(TInvokableClass, IMyData)
13   public
14     function GetInfo:widestring;stdcall;
15     function SetSQL(ASQL: widestring): widestring;stdcall;
16   end;
17
18 implementation
19 uses WebModuleUnit1;
20
21 { TMyData }
22
23 function TMyData.GetInfo: widestring;
24 var
25   oDM: TWebModule1;
26 begin
27   oDM := TWebModule1.Create(nil);
28   result := oDM.GetInfo;
29   oDM.Free;
30 end;
31
32 function TMyData.SetSQL(ASQL: widestring): widestring;
33 var
34   oDM: TWebModule1;
35 begin
36   oDM := TWebModule1.Create(nil);
37   result := oDM.SetSQL(ASQL);
38   oDM.Free;
39 end;
40
41 initialization
42 { Invokable classes must be registered }
43    InvRegistry.RegisterInvokableClass(TMyData);
44 end.

DelphiXE7客户端具体操作:
1.打开“DelphiXE7”->“File”->“New”->“Other”
2.“New Items”->“Delphi Projects”->“WebSrvice”->“WSDL Importer”
3.“Import WSDL”->WSDL Source中输入“http://localhost:8080/wsdl/IMyData”->“Next”
4.“Automatic SOAP versioning.(Recommended)”->“Next”
5.默认选项->“Finish”
6.Delphi会自动生成IMyData文件->保存
7.放入控件
ClientDataSet1
DataSource1
DBGrid1
8.DataSource1->DataSet:=ClientDataSet1
9.DBGrid1->DataSource:=DataSource1

客户端-实例代码:

 1 unit Unit1;
 2
 3 interface
 4
 5 uses
 6   Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
 7   Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Grids, Vcl.DBGrids, Data.DB,
 8   Datasnap.DBClient, Vcl.StdCtrls;
 9
10 type
11   TForm1 = class(TForm)
12     Button1: TButton;
13     ClientDataSet1: TClientDataSet;
14     DataSource1: TDataSource;
15     DBGrid1: TDBGrid;
16     Button2: TButton;
17     Edit1: TEdit;
18     procedure Button1Click(Sender: TObject);
19     procedure Button2Click(Sender: TObject);
20   private
21     { Private declarations }
22   public
23     { Public declarations }
24   end;
25
26 var
27   Form1: TForm1;
28
29 implementation
30 uses IMyData1;
31 {$R *.dfm}
32
33 procedure TForm1.Button1Click(Sender: TObject);
34  var
35   ows: IMyData;
36   s: string;
37 begin
38   ows := GetIMyData(true,‘http://localhost:8080/wsdl/IMyData‘,nil);   //参数中可以使用配置的url
39   s := ows.GetInfo;
40   if length(s) <> 0 then
41   ClientDataSet1.xmldata := s;
42 end;
43
44 procedure TForm1.Button2Click(Sender: TObject);
45  var
46   ows:IMyData;
47   s:string;
48 begin
49   ows := GetIMyData(true,‘http://localhost:8080/wsdl/IMyData‘,nil);   //参数中可以使用配置的url
50   s := ows.SetSQL(‘delete from usesr where yonghu=‘ + QuotedStr(‘ni2‘));
51   if length(s) <> 0 then
52   Edit1.Text := s;
53 end;
54
55 end.
时间: 2024-12-20 02:41:40

DelphiXE7中创建WebService(服务端+客户端)的相关文章

DelphiXE7中创建WebService(服务端+客户端) good

相关资料:http://www.2ccc.com/news/Html/?1507.html DelphiXE7新建WebService具体操作:1.打开“DelphiXE7”->“File”->“New”->“Other”2.“New Items”->“Delphi Projects”->“WebSrvice”->“SOAP Server Application”3.“Stand-alone application”->“Next”4.“VCL applicati

WebService 服务端客户端 实例(一)

Delphi中WebService包含的组件解释(有7个)     (1) THTTPRIO-------:使用Http消息来调用远程使用SOAP的接口对象     (2) THTTPReqResp---:给服务器发送一个SOAP消息, THTTPReqResp在可调用接口上执行一个方法请求.       (3) TOPToSoapDomConvert ----:TOPToSoapDomConvert处理Soap方法请求的组合与分发     (4) TSoapConnection:TSoapCo

[.Net Core] - 在 .NET Core 中创建 gRPC 服务端和客户端

gRPC 官网:https://grpc.io/ 1. 创建服务端 1.1 基于 ASP.NET Core Web 应用程序模板创建 gRPC Server 项目. 1.2 编译并运行 2. 创建客户端 2.1 基于控制台应用程序模板创建 gRPC Client 项目,并安装 Nuget 包(Google.Protobuf,Grpc,Grpc.Core,Grpc.Tools). 2.2 拷贝 Server 项目中的 Protos/greet.proto 文件到 Client 项目中 2.3 更新

JAVA WEBSERVICE服务端&amp;客户端的配置及调用(基于JDK)

前言:我之前是从事C#开发的,因公司项目目前转战JAVA&ANDROID开发,由于对JAVA的各种不了解,遇到的也是重重困难.目前在做WEBSERVICE提供数据支持,看了网上相关大片的资料也是云里雾里的,索性最后得以解决,现将代码及方法发布如下,有需要的朋友可以参考,谢谢! --------------------------------------------------- WEBSERVICE服务端 package lavasoft; import javax.jws.WebMethod;

XFire创建WebService服务端和客户端

感谢这篇博客http://clq9761.iteye.com/blog/1261963的分享. 可能是环境搭建的原因,按照资料有些地方没有成功,于是自己改了一部分,写了下面的demo 1.服务端 1.1.新建web工程,复制需要的jar包到lib文件夹 1.2.web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/

一个PHP写的简单webservice服务端+客户端

首先是服务端,服务端有一个主要的class组成:apiServer.php <?php /** * apiServer.php * * webservice主类 * * @filename apiServer.php * @version v1.0 * @update 2011-12-22 * @author homingway * @contact [email protected] * @package webservice */ define('API_AUTH_KEY', 'i8XsJb

Java创建WebService服务及客户端实现(转)

简介 WebService是一种服务的提供方式,通过WebService,不同应用间相互间调用变的很方便,网络上有很多常用的WebService服务,如:http://developer.51cto.com/art/200908/147125.htm,不同的语言平台对WebService都有实现,Java的WebService实现,比较流行的有Axis2.Jaxws,本文介绍的是Axis2. Axis2下载和部署 Axis2是Apache开发的一个开源项目,再次感叹Apache的伟大! 下载地址

Java创建WebService服务及客户端实现

简介 WebService是一种服务的提供方式,通过WebService,不同应用间相互间调用变的很方便,网络上有很多常用的WebService服务,如:http://developer.51cto.com/art/200908/147125.htm,不同的语言平台对WebService都有实现,Java的WebService实现,比较流行的有Axis2.Jaxws,本文介绍的是Axis2. Axis2下载和部署 Axis2是Apache开发的一个开源项目,再次感叹Apache的伟大! 下载地址

webservice通信 服务端 客户端简单实现

schema规范中: 1.所有标签和属性都需要有schema文件来定义. 2.所有schema文件都需要有一个唯一标识id,单在xml文件中它叫namespace. 3.namespace的值由targetNamespace属性来指定,它的值是一个url(很可能不存在). 4.如何引入一个schema约束? 1).属性?:用xmlns属性. 2).属性值?:对应schema文件的id即(namespace值). 5.如果引入的schema约束不是w3c提供的,必须指定schema文件的位置. 6