当前位置: 代码迷 >> Web前端 >> flex中使用webservice进行低数据量通讯
  详细解决方案

flex中使用webservice进行低数据量通讯

热度:393   发布时间:2012-07-30 16:19:05.0
flex中应用webservice进行低数据量通讯

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);
			}
?

执行效果和使用标签相同。

?

具体代码请参考附件。

?

  相关解决方案