1、webservice作为一种网络通讯技术,屏蔽了各开发平台的差异,使各平台之间可以无缝的通讯,实际开发中
flex可以方便的调用webservice进行低数据的通讯,flex提供了两种方式:<mx:WebService>、mx.rpc.soap.WebService。
?
2、<mx:WebService>
?
?
<mx:WebService id="Service" wsdl="http://localhost:9090/webServiceImpl?wsdl" useProxy="false"> <mx:operation name="toUpperCase" resultFormat="object" result="getUpper_result(event);" fault="getUpper_fault(event);"> <mx:request> <text>{txtStr.text}</text> </mx:request> </mx:operation> </mx:WebService>
<mx:WebService> :对应一个Web服务
?
id:组件ID
wsdl:此 WebService 的 WSDL 文档的位置
useProxy:是否使用代理
?
<mx:operation> :组件表示WebService的一个方法,必须与WebService中的定义名称相同,可以定义多个
name:方法名称
resultFormat:设定如何解码 Operation 结果,(object|xml|e4x)
result:当操作调用失败时调度的事件
fault:当操作调用成功返回时调度的事件
request :组件存储参数,参数值以标签形式存储。需要注意的是参数的名称及顺序必须与WebService中的定义相同。
?
其它信息请参考帮助文档。
?
3、mx.rpc.soap.WebService
?
除了使用mxml标签定义webservice外,还可以使用AS定义webservice,使用AS更加方便灵活。示例如下:
?
?
internal function doWebServiceCall():void { var ws:mx.rpc.soap.WebService=new mx.rpc.soap.WebService(); ws.useProxy=false; ws.wsdl="http://localhost:9090/webServiceImpl?wsdl"; ws.loadWSDL(ws.wsdl); var operation:mx.rpc.soap.Operation=ws.getOperation("toUpperCase") as mx.rpc.soap.Operation; operation.addEventListener(ResultEvent.RESULT, getUpper_resultAS); operation.addEventListener(FaultEvent.FAULT, getUpper_faultAS); operation.send(this.txtStrAS.text); }?
执行效果和使用标签相同。
?
具体代码请参考附件。
?