Search This Blog

2009-11-23

Flex Tutorials 15-How to Call WebService in Adobe Flex

Simple Call
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical">
<mx:WebService id="wsData" wsdl="http://localhost:8700/flex/services/SimpleService?wsdl" load="wsData.arrayOutMethod()"/>
<mx:DataGrid dataProvider="{wsData.arrayOutMethod.lastResult}"/>

<mx:Label text="{wsData.arrayOutMethod.lastResult.getItemAt(0).dessert}"/>

</mx:Application>
Another Sample call
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical">

<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.rpc.events.ResultEvent;
[Bindable]
private var sandwiches:ArrayCollection;
private function sanDataHandler(event:ResultEvent):void{
sandwiches = event.result as ArrayCollection;
}

]]>
</mx:Script>

<mx:WebService id="sanData"
wsdl="http://localhost:8500/SimpleWS.cfc?wsdl" load="sanData.getSandwichList()" result="sanDataHandler(event)"/>

<mx:DataGrid dataProvider="{sandwiches}"/>

<mx:Label text="{sandwiches.getItemAt(0).sandwichName}"/>

</mx:Application>

Fault Handling in Web Service
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical">

<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.rpc.events.ResultEvent;

[Bindable]
private var sandwiches:ArrayCollection;

private function sanDataHandler(event:ResultEvent):void
{
sandwiches=event.result as ArrayCollection;
}
private function faultHandler(event:mx.rpc.events.FaultEvent):void{
mx.controls.Alert.show(event.fault.faultCode);
mx.controls.Alert.show(event.fault.faultString);
}
]]>
</mx:Script>

<mx:WebService id="sanData"
wsdl="http://localhost:8500/SimpleWS.cfc?wsdl"
load="sanData.getSandwichLists()"
result="sanDataHandler(event)"
fault="faultHandler(event)"/>

<mx:DataGrid dataProvider="{sandwiches}"/>

<mx:Label text="{sandwiches.getItemAt(1).sandwichName}"/>

</mx:Application>

Call multiple Method in Web Service
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical">

<mx:Script>
<![CDATA[
import mx.rpc.events.ResultEvent;
import mx.collections.ArrayCollection;

[Bindable]
private var wordBack:String;
[Bindable]
private var dataBack:ArrayCollection;

private function wordHandler(event:ResultEvent):void
{
wordBack=String(event.result);
}

private function arrayHandler(event:ResultEvent):void
{
dataBack=event.result as ArrayCollection;
}

private function faultHandler(event:mx.rpc.events.FaultEvent):void
{
mx.controls.Alert.show(event.fault.faultCode);
mx.controls.Alert.show(event.fault.faultString);
}
]]>
</mx:Script>

<mx:WebService id="wsData"
wsdl="http://localhost:8500/SimpleWS.cfc?wsdl" load="wsData.outMethod();wsData.arrayOutMethod()" fault="faultHandler(event)">
<mx:operation name="outMethod" result="wordHandler(event)"/>
<mx:operation name="arrayOutMethod" result="arrayHandler(event)"/>
</mx:WebService>

<mx:Label text="{wordBack}" fontSize="40"/>

<mx:DataGrid dataProvider="{dataBack}"/>

</mx:Application>

Pass parameter to Webservice
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical">

<mx:Script>
<![CDATA[
import mx.rpc.events.ResultEvent;

[Bindable]
private var wordBack:String;

private function wsHandler(event:ResultEvent):void
{
wordBack=String(event.result);
}

private function faultHandler(event:mx.rpc.events.FaultEvent):void
{
mx.controls.Alert.show(event.fault.faultCode);
mx.controls.Alert.show(event.fault.faultString);
}
]]>
</mx:Script>

<mx:WebService id="wsData"
wsdl="http://localhost:8500/SimpleWS.cfc?wsdl"
result="wsHandler(event)"
fault="faultHandler(event)">
<mx:operation name="multArgsMethod">
<mx:request xmlns="">
<oneArg>
{word1.text}
</oneArg>
<twoArg>
{word2.text}
</twoArg>
</mx:request>

</mx:operation>
</mx:WebService>

<mx:Label text="{wordBack}"
fontSize="40"/>

<mx:TextInput id="word1"/>
<mx:TextInput id="word2"/>
<mx:Button label="send data" click="wsData.multArgsMethod.send()"/>

</mx:Application>

Output:

No comments: