`
peizhiinfo
  • 浏览: 1424849 次
文章分类
社区版块
存档分类
最新评论

Flex与WebService通信

 
阅读更多

FlexWebService通信
三峡大学土木水电学院肖泽云

首先介绍几个常用的WebService地址:
2400多个城市5日天气预报
http://www.webxml.com.cn/WebServices/WeatherWebService.asmx
国内手机号码归属地查询WEB服务
http://www.webxml.com.cn/WebServices/MobileCodeWS.asmx
国内飞机航班时刻表 WEB 服务
http://www.webxml.com.cn/webservices/DomesticAirline.asmx
股票行情数据 WEB 服务(支持香港、深圳、上海基金、债券和股票;支持多股票同时查询)
http://www.webxml.com.cn/WebServices/StockInfoWS.asmx
腾讯QQ在线状态
http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx
Email 电子邮件地址验证
http://www.webxml.com.cn/WebServices/ValidateEmailWebService.asmx
中国电视节目预告(电视节目表)
http://www.webxml.com.cn/webservices/ChinaTVprogramWebService.asmx
火车时刻表
http://www.webxml.com.cn/WebServices/TrainTimeWebService.asmx
中文 <-> 英文双向翻译
http://www.webxml.com.cn/WebServices/TranslatorWebService.asmx
中国邮政编码
http://www.webxml.com.cn/WebServices/ChinaZipSearchWebService.asmx
IP地址来源搜索
http://www.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx
天气预报Web服务,数据来源于中国气象局(预报数据每0.5小时左右自动更新一次
http://www.webxml.com.cn/WebServices/WeatherWebService.asmx

Flex可以通过WebService组件来获取数据。下面开始以一个使用WebService调取天气预报信息的例子来说明Flex与WebService之间的通信。
天气预报的WebService网址为:
http://www.webxml.com.cn/WebServices/WeatherWebService.asmx
1、在MXML中添加WebService标签,如下:
<mx:WebService id="webService" wsdl="http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl" showBusyCursor="true" result="onLoad(event)" fault="faultHandler(event)"/>
其中,wsdl为WebService网址,showBusyCursor表示是否显示忙碌光标,result用于用于调用返回的信息,fault表示出现错误时返回的信息。
2、添加常用组件,如文本输入框用于输入城市名称,按钮用于查询事件,文本区域用于显示返回的信息,如下:
<mx:TextInput id="cityname" text="北京" x="22" y="10" width="84"/>
<mx:Button label="查询" x="114" y="10"/>
<mx:TextArea id="myWeatherReport" height="100%" width="80%" editable="false"x="10" y="53"/>
3、为WebService定义onLoad()函数及faultHandler()函数。
当WebService获得数据后要设置其返回结果到文本区域控件myWeatherReport中,如下:
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.rpc.events.ResultEvent;
import mx.rpc.events.FaultEvent;
private function onLoad(event:ResultEvent):void{
var weatherInfo = event.result ;
myWeatherReport.text=weatherInfo;
}
private function faultHandler(event:FaultEvent):void{
Alert.show(event.fault.toString(),"WebService Error");
}
]]>
</mx:Script>
4、在按钮中启动WebService事件。
一般来说,发布的WebService中包含有很多对象、函数,可以通过城市的名称来查询天气、也可以通过代码来查询,还可以通过其他方式来查询等等(至于具体有哪些方式主要根据发布服务者的设计而定)。发布的WebService中具体包括哪些方法,可以通过将WebService网址后删除?wsdl然后再打开,如天气预报的WebService网址为http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl,要获取该WebService中发布所有的方法,只需要输入http://www.webxml.com.cn/WebServices/WeatherWebService.asmx即可,如下图所示:

通过浏览该地址就可以获取发布的方法,其中有一个方法为getWeatherbyCityName,点击该方法,其输入参数只有一个,即城市的名称。所有在按钮的click事件中调用“webService.getWeatherbyCityName(cityname.text)”,其中getWeatherbyCityName为WebService服务中发布的函数名,cityname.text为输入的城市名称。具体如下:
<mx:Button label="查询" x="114" y="10" click="webService.getWeatherbyCityName(cityname.text)"/>
运行程序,其显示结果如下图所示:

5、从上面的查询天气返回的信息可以看到,虽说查询到了相关的信息,但是该信息比较混乱。如何整理这些数据?首先必须获取到返回信息的数据结构,即weatherInfo的结构类型。然后获取它的数据结构,可以通过前面打开的网页http://www.webxml.com.cn/WebServices/WeatherWebService.asmx中点击函数getWeatherbyCityName打开该函数的一些相关信息。如下图所示,可只该函数有一个输入参数,即theCityName。

同时我们还知道,它的返回数据为一个一维数组 String(22),共有23个元素。String(0) 到 String(4):省份,城市,城市代码,城市图片名称,最后更新时间。String(5) 到 String(11):当天的 气温,概况,风向和风力,天气趋势开始图片名称(以下称:图标一),天气趋势结束图片名称(以下称:图标二),现在的天气实况,天气和生活指数。String(12) 到 String(16):第二天的 气温,概况,风向和风力,图标一,图标二。String(17) 到 String(21):第三天的 气温,概况,风向和风力,图标一,图标二。String(22) 被查询的城市或地区的介绍。
对于前面我们运行程序返回的一些杂乱信息我们通过这个解释就清楚了。它的返回数据为典型的XML数据结构,我们可以通过FlexArrayCollection数据结构来定义。如下:
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.utils.ArrayUtil;
import mx.controls.Alert;
import mx.rpc.events.ResultEvent;
import mx.rpc.events.FaultEvent;
private function onLoad(event:ResultEvent):void{
var weatherInfo:ArrayCollection = (event.result) as ArrayCollection;
for(var i:int=0;i<weatherInfo.length;i++){
myWeatherReport.text+=weatherInfo+"/n";
}
}
private function faultHandler(event:FaultEvent):void{
Alert.show(event.fault.toString(),"WebService Error");
}
]]>
</mx:Script>
运行程序,其显示结果如下图所示:

分享到:
评论

相关推荐

    flex4与Java通信实例

    flex4出来一段时间了,去年看了一段时间flex3,后来由于暂时没有项目需求.所以flex遗忘了很多.这次使用flex4+myeclipse8.5录制了一个视频.以免时间长了遗忘. 软件环境:windows7+... 3 flex与webservice交互WebService

    Flex4.0 如何通过 HttpService和WebService与服务器进行通信

    flex通过Http和WebService与服务器通信交互,交互后台采用java的Struts2做为处理后台.

    Flex调用WebService的例子(完形填空考试系统)

    Flex通过WebService与java通信读取数据库中的试题。当时不懂WebService,在论坛里发了帖子询问,后来解决了,几个热心的朋友询问解决方法,这里共享出来,希望对初学的朋友们有些帮助。PS:现在已经不做Flex了,呵呵...

    flex与java通信,通过插件blazed

    --flex与webservice交互这里调用一个天气预报的webservice--&gt; &lt;s:WebService id="ws" wsdl="http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl" fault="ws_faultHandler(event)" result="ws_...

    Flex和.NET通信

    可以实现FLEX和.NET的通信,是通过.NET的WEBSERVICE来通信的.本例子只提供学习

    flexdemo示例有兴趣可以看看

    flexdemo示例有兴趣可以看看 1 flex 与普通java类通信RemoteObject 2 flex 与服务器交互HTTPService 3 flex与webservice交互WebService

    FLEX AIR天气预报查询

    为了学习flex 的webservice通信做的一个小程序,基于air的,分享出来方便大家学习。 有问题联系QQ:282771471

    如何做好Flex与Java交互

     flex与webservice交互WebService。  当大家尝试使用flex与普通java类通信时,一般用RemoteObject,具体的代码段如下:  package com.flex.demo; /** *第一种 功能描述:该类用来实现flex与普通java类中的...

    Flex与处部的数据通信和图表

    4.1 Flex与处部的数据通信 4.1.1 使用HTTPService 4.1.2 使用WebService 4.1.3 使用Remoting 4.2 Flex图表 4.2.1 使用饼形图呈现数据 4.2.2 使用折线图呈现数据 4.2.3 使用柱形图呈现数据 4.2.4 向图表添加动画 ...

    flex和asp.net的一个简单的通信例子

    flex利用webservice和asp.net通信的一个简单的例子。flex客户端将登录用的名字和密码传递给后台服务器端。在vs2008中新建web服务。即后缀名为.asmx的文件。

    Flex新手教程_入门级学习笔记

    5.2.2 Flex访问WebService 32 6 BlazeDS与服务端通信 33 6.1什么是BlazeDS 33 6.2配置BlazeDS,并使之正常运作 34 6.3创建一个Java项目,用来充当Server 34 6.4配置BlazeDS 35 6.5 新建一个Flex应用程序,测试连接 35 ...

    flex之低数据量通信实例源码

    flex之低数据量通信实例源码,包括上传、下载、HTTPservice、webservice等

    FLEX数据与通讯

    介绍flex的通信方面的知识,有关httpservice,webservice服务相关方面的知识。

    ExtJs与Java通信

    最完善的ExtJS与Java后台通信,两种数据传输第一种采用的是JSon,第二种是采用直接提交Form表单,个人觉得ExtJS比Flex与Java通信要简单写,呵呵。谁有WebService学习资料告诉我啊,要自己写WebService了哈。

    基于WebService的数据访问(上) Flex与.NET互操作(二)

    Flex提供了、和标签来直接访问远程数据,这用于与各种不同语言环境开发提供的远程服务端数据源(如WebService)进行数据交互通信显得更加容易.

    flex3的cookbook书籍完整版dpf(包含目录)

    与WebService通信 18.10节. 添加SOAP头到WebSerice请求 18.11节. 解析WeBService的返回的SOAP响应 18.12节. 使用SecureAMFChannel进行AMF的安全通信 18.13节. 通过二进制Socket发送和接收二进制数据 18.14节. ...

    Flex HTTPService with ASP.NET.zip

    帶有ASP.NET的Flex HTTPService ... Adobe Flex中有許多方法可以與ASP.NET(或簡單地說,服務器端語言)進行通信。 HttpService,WebService,WebORB,FluorineFx等。在本教程中,我僅關注HTTPService。

    Flex和.NET协同开发利器FluorineFx Flex与.NET互操作

    在本系列前面几篇文章中分别介绍了通过WebService、HTTPService、URLLoader以及FielReference等组件或类来完成Flex与.NET服务端的通信的相关知识点。

    MXML.doc MXML语言是专门用于Flex程序中

    MXML语言是专门用于Flex程序中,描述界面表现的一中XML标记语言。我们可以用它来管理程序的整体布局,控制组件的样式和外观,也可以构建非可视化的对象,比如XML数据、与服务器端通信的WebService、组件的数据源等。

    cocoaAMF使用指南.zip

    AMF是Action Message Format协议的简称,AMF协议是Adobe公司自己的协议,主要用于数据交互和远程过程调用,在功能上相当于WebService,但是AMF与WebService中的XML不同的是AMF是二进制数据,而XML是文本数据,AMF的...

Global site tag (gtag.js) - Google Analytics