Delphi调用WebService的实例(非常经典)

合集下载

WebService调用实例

WebService调用实例

1.什么是webserviceWeb service 就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。

这就是说,你能够用编程的方法通过Web来调用这个应用程序。

对Web service 更精确的解释:Web services是建立可互操作的分布式应用程序的新平台。

作为一个Windows程序员,你可能已经用COM或DCOM建立过基于组件的分布式应用程序。

COM是一个非常好的组件技术,但是我们也很容易举出COM并不能满足要求的情况。

Web service平台是一套标准,它定义了应用程序如何在Web上实现互操作性。

你可以用任何你喜欢的语言,在任何你喜欢的平台上写Web service ,只要我们可以通过Web service标准对这些服务进行查询和访问。

不管你的Web service是用什么工具,什么语言写出来的,只要你用SOAP协议通过HTTP 来调用它,总体结构都应如下图所示。

通常,你用你自己喜欢的语言(如VB 6或者)来构建你的Web service,然后用SOAP Toolkit或者.NET的内建支持来把它暴露给Web客户。

于是,任何语言,任何平台上的客户都可以阅读其WSDL文档,以调用这个Web service。

客户根据WSDL描述文档,会生成一个SOAP请求消息。

Web service 都是放在Web服务器(如IIS) 后面的,客户生成的SOAP请求会被嵌入在一个HTTP POST请求中,发送到Web服务器来。

Web服务器再把这些请求转发给Web service 请求处理器。

对VB 6程序来说,Web service请求处理器是一个与SOAP Toolkit组件协同工作的ASP页面或ISAPI extension。

而对程序来说,Web service请求处理器则是一个.NET Framework自带的ISAPI extension。

请求处理器的作用在于,解析收到的SOAP请求,调用Web service,然后再生成相应的SOAP应答。

delphi调用C#写的webservice

delphi调用C#写的webservice

delphi调⽤C#写的webservice看以下的⼀个例⼦(转)先⽤创建⼀个简单的webservices;1.打开2003 新建⼀个webservises 命名为WebService12.添加两个WebMethod[WebMethod]public string HelloWorld(){return"Hello World ⽤.NET写的web服务!!^_^ ";}[WebMethod]public string datetostr(DateTime dt)//将时间转换为字符{return dt.ToUniversalTime().ToString();} 完整代码using System;using System.Collections;using ponentModel;using System.Data;using System.Diagnostics;using System.Web;using System.Web.Services;namespace WebService1{public class Service1 : System.Web.Services.WebService{public Service1(){//CODEGEN: 该调⽤是 Web 服务设计器所必需的InitializeComponent();}#region组件设计器⽣成的代码//Web 服务设计器所必需的private IContainer components = null;///<summary>///设计器⽀持所需的⽅法 - 不要使⽤代码编辑器修改///此⽅法的内容。

///</summary>private void InitializeComponent(){}///<summary>///清理所有正在使⽤的资源。

///</summary>protected override void Dispose( bool disposing ){if(disposing && components != null){components.Dispose();}base.Dispose(disposing);}#endregion[WebMethod]public string HelloWorld(){return"Hello World ⽤.NET写的web服务!!^_^ ";}[WebMethod]public string datetostr(DateTime dt)//将时间转换为字符{return dt.ToUniversalTime().ToString();}}}1下⾯在打开delphi 72新建⼀个应⽤程序:拖两个button两个edit 和⼀个HTTPRIO(在webservices页上)到窗体上;3.接下来:File-> new-> other-> webservices-> WSDL importer点击next 导⼊保存unit Service14.在unit1(form1 的单元⽂件)中引⽤Service1, XSBuiltIns5. HTTPRIO1的(特别注意)。

delphi调用webservice超时

delphi调用webservice超时

delphi调用webservice超时
司有个老业务系统,用的是delphi6开发。

需要调用webservice,但发现调用超时30秒弹出异常的问题。

网上查询,说delphi7的THTTPRIO控件设置超时属性就行了。

但delphi6没有这个属性,只能从底层修改了。

步骤:
1.打开delphi的VCL 源码,找到SOAPHTTPTrans.pas文件,把这个文件拷到项目工程文件的目录,并加到工程中。

这样Delphi源文件修改后才能够生效。

2.找到procedure THTTPReqResp.Connect(Value: Boolean);行
3.写义一个变量:
Timeout:DWORD;
4.
在 FInetRoot := InternetOpen(PChar(FAgent), AccessType, PChar (FProxy), PChar(FProxyByPass), 0);代码前添加如下代码行:
//设置10分钟超时,10分钟一般够用了。

Timeout:=600000;
InternetSetOption(nil, INTERNET_OPTION_RECEIVE_TIMEO UT ,
@Timeout, sizeof(Timeout));
4.重新编译项目,运行程序。

以后webservice就不会受限于30秒超时报异常的问题了!。

如何用delphi2005的WebService返回各种类型数据

如何用delphi2005的WebService返回各种类型数据

如何⽤delphi2005的WebService返回各种类型数据⼀、建⽴WebService⽂件,⼆、引⼊.Net下的Unit,并改名为ClassFactory,三、在WebService中的Uses中加⼊ClassFactory。

四、注意WebService中的每⼀个⽅法都要有[WebMethod]作引导。

具体程序如下:==========================以下为WebService的单元⽂件==========================unit WebService1;interfaceuses System.Collections, ponentModel, System.Data, System.Diagnostics, System.Web, System.Web.Services, System.Data.Odbc, Borland.Data.Provider, ClassFactory;type /// <summary> /// Summary description for WebService1. /// </summary> TWebService1 = class(System.Web.Services.WebService) {$REGION 'Designer Managed Code'} strict private /// <summary> /// Required designer variable. /// </summary> procedure InitializeComponent; {$ENDREGION} strict protected /// <summary> /// Clean up any resources being used. /// </summary> procedure Dispose(disposing: boolean); override; private { Private Declarations } public constructor Create; // Sample Web Service Method [WebMethod] function HelloWorld: string; [WebMethod] function YourName(NameNo:Integer): string; [WebMethod] function getEmp(NameNo:Integer): TEmpInfo; [WebMethod] function getDoubleArray(DoubleNo:Double): TArrayOfDouble; [WebMethod] function getIntegerArray(IntegerNo:Integer): TArrayOfInt; end;implementation{$REGION 'Designer Managed Code'}/// <summary>/// Required method for Designer support - do not modify/// the contents of this method with the code editor./// </summary>procedure TWebService1.InitializeComponent;begin{$ENDREGION}constructor TWebService1.Create;begin inherited; // // Required for Designer support // InitializeComponent; // // TODO: Add any constructor code after InitializeComponent call //end;/// <summary>/// Clean up any resources being used./// </summary>procedure TWebService1.Dispose(disposing: boolean);begin if disposing and (components <> nil) then components.Dispose; inherited Dispose(disposing);end;// Sample Web Service Method// The following method is provided to allow for testing a new web service. function TWebService1.HelloWorld: string;begin Result := 'Hello World';end;function TWebService1.YourName(NameNo: Integer): string;begin if NameNo<>0 then Result:='YourName is Bird' else Result:='YourName Is null';end;function TWebService1.getEmp(NameNo: Integer): TEmpInfo;begin Result:=TEmpInfo.create;  :='Apple'; Result.Age :=13+NameNo;end;function TWebService1.getDoubleArray(DoubleNo: Double): TArrayOfDouble; var I:Integer;begin SetLength(Result,6); For I:=0 to 5 do begin Result[I]:=DoubleNo+I; end;end;function TWebService1.getIntegerArray(IntegerNo: Integer): TArrayOfInt;var I:Integer;begin SetLength(Result,6); For I:=0 to 5 do begin Result[I]:=IntegerNo+I; end;end;end.========================以下为ClassFactory的单元⽂件======================== unit ClassFactory;interfacetypeTEmpInfo = Class Private FName :String; FAge :Integer; Published Property Name :String Read FName Write FName; Property Age :Integer Read FAge Write FAge;end;TArrayOfInt = array of Integer;TArrayOfDouble = array of Double;implementationend.。

详解C# Webservice与Delphi交互

详解C# Webservice与Delphi交互

1.使用C#创建一个Webservice服务。
使用vs2005的模板创建C# Webservice非常容易。原文件如下:
[WebService(Namespace = \"http:
//localhost/webserver/\")]
[WebServiceBinding(ConformsTo =
type
ServiceSoap = interface(IInvokable)
['{77573149-9C57-FA51-F11F-EFD527C91BD9}']
function HelloWorld(const asdf: WideString): WideString; stdcall;
Delphi 调用C#编写的WebService 参数为Null解决方法
今天测试.net 2.0的WebService,发现了一个大问题。就是无法获取参数,参数永远是null。当然了使用.net调用
没有任何问题,web测试页也正常。不论是Delphi7还是java调用的结果的都是一样的,难道是.net 2.0的Bug?
end.
至此问题搞定了。
但是经过我的测试发现,还是不行.......找到了其他原因问题
解决了,
在用VS2005写的WebService的类属性中加入SoapRpcServiceAttribute属性就可以了。
如 下:
[SoapRpcService(RoutingStyle=SoapServiceRoutingStyle.SoapAction)]
如何导,方法至少有两种,我说简单的一种:
file->new->other->WebService->WSDL Importer,

Delphi7调用C#WebService

Delphi7调用C#WebService

Delphi7调用C#WebService我有一支老舊的 Delphi 7 程序具有發送 SMTP 的功能, 功能整合, 需要調用 C# WebService 發送郵件功能,發現 Delphi 7并不能像 C# 一樣, 添加了 WebService 后就可以直接使用, 而在 Delphi XE 2或5中卻很方便.可是 Delphi XE 的破解補丁用一段時間失效了, 需要重新安裝系統才能破解.無奈之下, 只好使用 Delphi 7 . 上網查了一些資料, Delphi 7 調用WebService 需要多寫幾行代碼.一、添加 WebService點擊菜單 File --> New --> Other選擇 WebServices 的 WSDL Importer, 點擊 OK輸入 WebService 的地址, 后面加 ?wsdl點擊完成按鈕到此,WebService 添加完成, 專案會自動增加 service1.pas二、修改代碼在service1.pas 的最下面,添加以下一行, 其中Service1Soap 根據實際名稱不同而不同InvRegistry.RegisterInvokeOptions(TypeInfo(Service1Soap), ioDocument);添加后的代碼如下:引用 WebService 需要的組件, 申明變量, 初始化后就可以直接調用了,完整代碼如下:program Project2;{$APPTYPE CONSOLE}usesSysUtils,InvokeRegistry, SOAPHTTPClient, Types, XSBuiltIns,service1 in 'service1.pas';varWebService1: Service1Soap;mHttpRIO: THTTPRIO;webservice_result: string;begin{ TODO -oUser -cConsole Main : Insert code here }mHttpRIO := THTTPRIO.Create(nil);mhttprio.URL := 'http://192.168.1.108:6666/service1.asmx';eUTF8InHeader := true;mhttprio.Converter.Encoding := 'UTF-8';Webservice1 := mhttprio as Service1Soap;//調用webservice_result := webservice1.SendMail('根據實際需要填寫參數');end.調試運行, webservice_result 就是調用webservice返回的結果.。

Delphi调用WebService的实例(非常经典)

Delphi调用WebService的实例(非常经典)

Delphi调⽤WebService的实例(⾮常经典)Delphi 调⽤webservice 经典实例Dispatch: 派遣,分派 Invoke: 调⽤ Invokable: 可调⽤接⼝TReomtable: WebService中⾃定义类都是继承⾃该类 TSOAPAttachment: Attachment:附件,⼀种流类型,可以返回流数据 CGI:(EXE)ISAPI:(DLL) Base64编码: uses EncdDecd; s := EncodeString(s); //加 base64 编码 s := DecodeString( str ); //解码 UTF8: UTF8 是8位的UNICODE字符,⽽ASCII是7位 ,gb2312和unicode是2字节/字,utf8是3字节/字utf8类似以前的8位转7位的编码,是为了在⽹络间不同系统的通讯⽅便⽽作的转换。

⼏乎所有⽤.Net写的WebService只⽀持DOC⽅式、Delphi写的只⽀持RPC⽅式;J2ME⽬前对Web Service的⽀持仅限于RFC172,⽽ RFC172要求必须为DOC⽅式(sun怎么偏袒MS?)!为了在设计中减少障碍,下⾯还介绍⼏个概念。

1) SOAP:SOAP是⼀种简单有效的数据传输协议,⽤于分布式⽹络环境下数据信息交换,它以XML 作为数据传输的格式,搭配Internet上标准的传输协议HTTP、SMTP、TCP等来传送信息。

从本质上看,SOAP事实上只是将Request和Response经由XML格式把数据打包,达到双⽅沟通的⽬的。

2) WSDL:WSDL(Web Service Description Language)是⼀种以XML格式描述的Web Service语⾔,当Web Service Provider 要对外公布提供的 Web Service,就需要通过WSDL来构建描述语⾔。

在WSDL中有两个⾮常重要的要素::此WSDL⽂件所要描述的Web Service集合;每⼀个Port代表外界Client可以和此Service沟通的⼀个进⼊点,⼀个Port会指定⼀个Binding⽅式。

Delphi通过WebService开发Web服务端和手机客户端

Delphi通过WebService开发Web服务端和手机客户端

Delphi通过WebService开发Web服务端和手机客户端介绍本文章介绍了Delphi XE5通过WebService 开发Web服务端和手机客户端,下面是操作的详细过程。

我们开发一个三层的android程序建立一个webservices stand-alone vcl application 作为手机访问的服务端1、new->other->webservices2、选择stand-alone vcl application3、这里使用默认端口80804、选择创建接口5、给服务起个名字6、点ok后保存工程,保存为目录如下:7、至此为止,什么代码都不写,点击运行,我们看到8、启动并点击open browser按钮在浏览器里看到一个web服务就创建完成了。

接下来创建一个返回数据集的过程,用webservices发布,供手机端调用。

这里我使用firedac1、打开上一篇自动创建的WebModule然后分别拖放以下数据连接控件FDConnection1:firedac连接数据库的FDPhysMSSQLDriverLink1: 数据驱动选的是sqlserver ,另外还有db2 ,oracle,acess ,excel ,sqllite,mysql等FDQuery1: 相当于adoqueryDataSetProvider1:delphi的providerClientDataSet1: delphi的我最喜欢的cds2、数据库的连接首先用 FDConnection1 连接sqlserver 服务器,在控件上邮件设置一下信息3、其他数据控件连接FDquery1已经自动连上了connection,我们在sql里写以下语句接下来DataSetProvider1 连好fdquery1,clientdataset1的providername 选择DataSetProvider14、在WebModule 中的public中实现以下代码functionTAndroidWM.GetEmployee_Mi: widestring;beginwith clientdataset1 dobeginclose;open;result:=xmldata;close;end;end;5、在AdroidServicesImpl.pas 引用WebModule 的接口实现的public单元实现以下代码functionGetEmployee_mi:widestring;stdcall;functionTAdroidServices.GetEmployee_mi: string;vardm:TAndroidWM;begindm:=TAndroidWM.Create(nil);result:=dm.GetEmployee_Mi;dm.Free;end;6、在AdroidServicesIntf.pas 单元实现以下代码typeIAdroidServices =interface(IInvokable) ['{9B1596C5-AD 43-4849-830E-0B82D8BAA043}']functionGetEmployee_mi:widestring;stdcall;end;6、运行server 查看webservice是否实现了GetEmployee_mi服务服务端至此完成,实现了用clientdataset 的xmldata返回数据集的过程,当然您可以对返回的xml进行压缩和解压缩的操作,减小网络传输压力。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Delphi 调用webservice 经典实例Dispatch: 派遣,分派 Invoke: 调用 Invokable: 可调用接口TReomtable: WebService中自定义类都是继承自该类 TSOAPAttachment: Attachment:附件,一种流类型,可以返回流数据 CGI:(EXE)ISAPI:(DLL) Base64编码: uses EncdDecd; s := EncodeString(s); //加 base64 编码 s := DecodeString( str ); //解码 UTF8: UTF8 是8位的UNICODE字符,而ASCII是7位 ,gb2312和unicode是2字节/字,utf8是3字节/字utf8类似以前的8位转7位的编码,是为了在网络间不同系统的通讯方便而作的转换。

几乎所有用.Net写的WebService只支持DOC方式、Delphi写的只支持RPC方式;J2ME目前对Web Service的支持仅限于RFC172,而 RFC172要求必须为DOC方式(sun怎么偏袒MS?)!为了在设计中减少障碍,下面还介绍几个概念。

1) SOAP:SOAP是一种简单有效的数据传输协议,用于分布式网络环境下数据信息交换,它以XML 作为数据传输的格式,搭配Internet上标准的传输协议HTTP、SMTP、TCP等来传送信息。

从本质上看,SOAP事实上只是将Request和Response经由XML格式把数据打包,达到双方沟通的目的。

2) WSDL:WSDL(Web Service Description Language)是一种以XML格式描述的Web Service语言,当Web Service Provider 要对外公布提供的 Web Service,就需要通过WSDL来构建描述语言。

在WSDL中有两个非常重要的要素::此WSDL文件所要描述的Web Service集合;每一个Port代表外界Client可以和此Service沟通的一个进入点,一个Port会指定一个Binding方式。

3):处理中文乱码的问题: 将HttpRio的 Converter 的 Options 的soUTF8InHeader 设为 True 将生成soap消息的HTTPSoapDispatcher控件,添加encoding为gb2312 eUTF8InHeader := True;4)在Delphi中,能够传递的自定义类型的对象要继承TRemotable,5:修正一个服务器端的一个Bug:将ISAPIThreadPool和ISAPIApp的次序变一下:ISAPIApp必须在 ISAPIThreadPool之前: uses ... ISAPIApp, ISAPIThreadPool 解决如下错误: Received content of invalid Content-Type setting:text/html -SOAP"expects"text/xml" 6:"XML document must have a top level element. Line: 0" 错误,我该如何解决??哈纳斯 (2002-08-05 17:26:00) 我也曾碰到同样的问题解决方法是:别设httprio的wsdllocation,设它的url 如http://localhost/mydir/project1.exe/wsdl/IFIRST mydir是你的可执行的虚拟目录,IFIRST是你定义的接口名********************************************************************* **************************Delphi中WebService包含的组件解释(有7个)(1) THTTPRIO-------:使用Http消息来调用远程使用SOAP的接口对象(2) THTTPReqResp---:给服务器发送一个SOAP消息, THTTPReqResp在可调用接口上执行一个方法请求.(3) TOPToSoapDomConvert ----:TOPToSoapDomConvert处理Soap方法请求的组合与分发(4) TSoapConnection:TSoapConnection在客户端的多层数据库应用中创建并维护客户端和作为WebService 的远程应用服务器间的连接(5) THTTPSoapDispatcher -----:通过将Soap消息转发给调用者,THTTPSoapDispatcher对Soap消息做出响应.(6) TWSDLHTMLPublish -----:TWSDLHTMLPublish发布描叙webService应用的Wsdl文档(7) THTTPSoapPascalInvoker -----:THTTPSoapPascalInvoker解释Soap 的请求信息,并执行相应的可调用接口.********************************************************************* **************************WSDL 说明:(Web Services Description Language) 规范是一个描述接口,语义以及Web 服务为了响应请求需要经常处理的工作的XML文档。

这将使简单地服务方便,快速地被描述和记录。

以下是一个WSDL的样例:first service它包含了以下的关键信息:消息的描述和格式定义可以通过XML文档中的和标记来传送。

标记中表示了消息传送机制。

(e.g. request-only,request-response, response-only) 。

标记指定了编码的规范。

标记中表示服务所处的位置 (URL)。

WSDL在UDDI中总是作为一个接口描述文档。

因为UDDI是一个通用的用来注册WSDL规范的地方,UDDI的规范并不限制任何类型或者格式描述文档。

这些文档可能是一个WSDL文档,或者是一个正规的包含导向文档的Web页面,也可能只是一个包含联系信息的电子邮件地址。

现在Java提供了一个 Java API for WSDL (JWSDL)规范。

它提供了一套能快速处理WSDL文档的方法,并且不用直接对XML文档进行操作,它会比 JAXP更方便,更快速。

********************************************************************* **************************SOAP说明(Simple Object Access Protocal)。

我们先简单了解WebServices运作模式。

服务端生成服务描述文件WSDL(Web Services Description Language,类似COM的Interface Description Language),如果接收客户端的SOAP请求消息(XML格式数据),解析其调用和参数,根据WSDL和WSML(Web Services Meta Language,Microsoft为描述WSDL里提供的方法与实现该方法的COM对象之间的映射关系而特地设立),调用相应COM对象完成指定功能,并返回到SOAP 消息遣至用户;客户端取得并解析服务端的服务描述文件从而得知服务端的服务内容及调用方式,生成SOAP请求消息(指定调用的方法名称和参数)送往服务端。

********************************************************************* **************************TReomtable说明: WebService中自定义类都是继承自该类 //自己定义一个继承自TRemotable的类 (注意只有属性定义,没有方法) TSpeciesInfo =class(TRemotable) private FLength: Integer; FSpeciesName: string; FCategory: string; FCommonName: string; FmoreInfo: string; published property Category: string read FCategory write FCategory; property CommonName: string read FCommonName write FCommonName; property SpeciesName: string read FSpeciesName write FSpeciesName; property Length: Integer read FLength write FLength; property MoreInfo: string read FmoreInfo write FMoreInfo; end;TSOAPAttachment说明:一种Soap的流类型数据.跟平时的integer等等一个意思 //比如(1):服务器端建立一个流输出(result:)GrapStream:=TMemoryStream.create; trySoapAttachment:=TSoapAttachment.create;TBolbField(frmdm.adoqury.fields[0]).SaveToStream(GrapStream); SoapAttachment.SetSourceStream(GraphStream,soReference);result:=SoapAttachment; except if assigned(GrapStream) then GrapStream.free; if assigned(SoapAttchament) then SoapAttchment.free; end(2):客户端接受一个流输入 var src:string; begin if notAssigned(SoapAttachment) then exit; Src:=SoapAttachment.CacheFile; ....例子,基于Soap和webService的分布式网络程序实例//编写服务器端 --ok1:File --->New---->Other----->WebService--->Soap WebService Application 后生成3个组件一个是调用者组件:THTTPSoapPascalInvoker:完成Soap消息和.... 一个是调度者组件:THTTPSoapDispatcher:自动响应送入的soap消息,并且把他们传递给调用者,可以使用他的 WebDispatch属性来识别应用程序响应的http请求.包括设置PathInfo属性来指明指向应用程序的任何URL的路径部分,设置MethodType属性来指明请求消息的方法头. 一个是WSDL发布者:TWSDLHTMLPublisher:WSDL发布者发布描叙接口以及如何调用他们的wsdl文档,使用非delphi 编写的客户端程序也可以调用WebService应用程序.2:在接口中添加方法和在实现该接口的类中实现该方法. (1):接口中自定义的类都是继承自TRemotable类,该类只能有属性,没有方法 (2):3:将生成的Dll文件拷贝到 C:\InetPub\Scripts目录下面.//编写客户端 --ok(1):File--->New--->other---->WebSerice--->Wsdl Importer: 对话框1:WsDl Source:输入==>http://服务器名/scripts/应用程序名/wsdl/相应接口 ,然后Next下步.然后点finish(2):添加一个普通的窗体,上面放WebService中的控件:HTTPRIO,编写它的OnAfterExecute ,OnBeforeExecute事件连接服务:http://server/script/MyWebService.dll/Soap/ImyWeb ***请注意是Soap/接口 FAttachService为WebService的接口 if FAttachService = nil then begin FAttachService := GetiMyWeb(False, EditUrl.Text); (FAttachService as IRIOAccess).RIO.OnBeforeExecute := HTTPRIO1BeforeExecute; (FAttachService as IRIOAccess).RIO.OnAfterExecute :=HTTPRIO1AfterExecute; end; Result := FAttachService;********************************************************************* ********** (HTTPRIO1 as ITest).TestFunction(aParam, bParam);(3):注意在IIS中设置Script的是否有执行权限.编写一个基于Soap DataModule的三层数据库应用服务器端:建立一个Web App Debugger executable类型,不需要接口,添加一个Soap Data Module,放上AdoCon,AdoDataSet,DataSetProvider1 设置数据好连接,利用AdoDataSet打开一个数据集,然后编译运行,打开Web App Debugger查看是否正确.客户端:(1)建立一个普通的应用程序,添加SoapConnection1组件,设置他的url:格式为:http://localhost:1024/Demo3.wadSoapDemo3/soap(2)添加一个ClientDataSet 设置它的RemoteServer=SoapConnection1,provideName=DataSetProvider1 (注意将Web App Debugger打开) (3)Active就可以看到数据了.WebService的服务器端的调试(1):编写服务器时选择:Web App Debugger executable类型(2):编写完成后运行一次服务器,则系统将把该webservice的类注册(3):启动Tool--->Web App Debugger,设置servers的optionsport============1024 defaulturl=====http://localhost:1024/Demo3.wadSoapDemo3/wsdl 其中demo3为exe 程序的名字, wadSoapDemo3为建立服务器的时候填写的类名称,可在主Form的initialization中找到:TWebAppSockObjectFactory.Create('wadSoapDemo3')(4)打开ie,在地址输入:http://localhost:1024/Demo3.wadSoapDemo3/wsdl就可以查看接口了Server 端:SoapDataModule中加入 ADOConnection1、ADODataSet1、DataSetProvider1;DataSetProvider1的DataSet设置为 ADODataSet1;ADODataSet1的CommandText设置为空,Connection设置为ADOConnection1。

相关文档
最新文档