以查询火车时刻表的WebService为例:
http://webservice.webxml.com.cn/WebServices/TrainTimeWebService.asmx?wsdl
顺便介绍下Flex调用WebService,相信能看到这篇随笔的人都已经熟悉了,但还是希望有机会照顾一下新手
在你新建的Application中,实例化WebService对象:
<mx:WebService id="ws" wsdl="http://webservice.webxml.com.cn/WebServices/TrainTimeWebService.asmx?wsdl" showBusyCursor="true" fault="fault_Handler(event)"> <mx:operation name="getStationAndTimeByStationName" result="result_Handler(event)"/> </mx:WebService>
wsdl是你要调用的WebService,operation是它的方法,调用这个方法时,结果交给result_Handler(event)函数。
function fault_Handler(event:FaultEvent){ Alert.show(event.fault.message); } function result_Handler(event:ResultEvent){ dg.dataProvider=event.result.Tables.TimeTable.Rows; }
你可以在浏览器中先试一下,在IE中打开: |
http: //webservice.webxml.com.cn/WebServices/TrainTimeWebService.asmx?op=getStationAndTimeByStationName<br> |
输入“始发站”和“抵达站”,点“调用”,结果是一个XML: |
以下是完整代码(我定义的是一个组件):
<?xml version="1.0" encoding="utf-8"?> <mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%" fontSize="12" > <mx:Form id="form" width="100%" height="150"> <mx:FormItem label="发车站:"> <mx:TextInput id="input_start" width="200" text="上海"/> </mx:FormItem> <mx:FormItem label="抵达站:"> <mx:TextInput id="input_end" width="200" text="北京"/> </mx:FormItem> <mx:FormItem> <mx:Button id="bt" label="查询" click="init()"/> </mx:FormItem> </mx:Form> <mx:DataGrid id="dg" width="100%" height="100%" y="{form.height}"> <mx:columns> <mx:DataGridColumn headerText="车次" dataField="TrainCode"/> <mx:DataGridColumn headerText="始发站" dataField="FirstStation"/> <mx:DataGridColumn headerText="终点站" dataField="LastStation"/> <mx:DataGridColumn headerText="发车站" dataField="StartStation"/> <mx:DataGridColumn headerText="发车时间" dataField="StartTime"/> <mx:DataGridColumn headerText="抵达站" dataField="ArriveStation"/> <mx:DataGridColumn headerText="抵达时间" dataField="ArriveTime"/> <mx:DataGridColumn headerText="里程(KM)" dataField="KM"/> <mx:DataGridColumn headerText="历时" dataField="UseDate"/> </mx:columns> </mx:DataGrid> <mx:WebService id="ws" wsdl="http://webservice.webxml.com.cn/WebServices/TrainTimeWebService.asmx?wsdl" showBusyCursor="true" fault="fault_Handler(event)"> <mx:operation name="getStationAndTimeByStationName" result="result_Handler(event)"/> </mx:WebService> <mx:Script> <![CDATA[ import mx.rpc.events.ResultEvent; import mx.controls.Alert; import mx.rpc.events.FaultEvent; import mx.collections.ArrayCollection; [Bindable] var ac:ArrayCollection=new ArrayCollection; public function init():void{ ws.getStationAndTimeByStationName(input_start.text,input_end.text,''); } function fault_Handler(event:FaultEvent){ Alert.show(event.fault.message); } function result_Handler(event:ResultEvent){ dg.dataProvider=event.result.Tables.TimeTable.Rows; } ]]> </mx:Script> </mx:Canvas>
http://www.cnblogs.com/frostbelt/archive/2010/11/18/1880672.html
如果你看了,搞定了,顶一下吧
如果你看了,没搞定,问一下吧
希望路过的大家多多交流