flex 调用中国气象局天气服务查询天气
首先,我们会先使用已经准备好的一个天气预报的WebService服务,WebService服务来自WebXML,免费,而且查询信息来自国家气象局,地址如下:http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl
其中getWeatherbyCityName就是请求WS返回特定城市天气预报的函数名称,而theCityName就是城市名的参数(其实这个参数你只 要将合法的城市名以String格式传给getWeatherbyCityName就可以了。至于哪个城市在它WebService的服务之列,你可以自 己来挖掘WebService发现
接下来,你可以通过访问这里去进一步测试此WebService,而且可以在着手写代码前,先看看城市天气预报返回的XML数据构成,以及SOAP1.1和1.2的标准请求 和响应示例,包括HTTP的GET和POST示例。你试着,输入城市为“北京”,你将会得到的返回数据是基于XML格式的数据
http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?op=getWeatherbyCityName
<ArrayOfString>
<string>直辖市</string>
<string>北京</string>
<string>54511</string>
<string>54511.jpg</string>
<string>2009-2-20 15:14:50</string>
<string>4℃ / -6℃</string>
<string>2月20日 晴转多云</string>
<string>微风</string>
<string>0.gif</string>
<string>1.gif</string>
<string>今日天气实况:;1℃;风向/风力:南风3级;空气质量:中;紫外线强度:弱</string>
<string>
穿衣指数:天气冷,建议着棉衣、皮夹克加羊毛衫等冬季服装。年老体弱者宜着厚棉衣或冬大衣。
感冒指数:昼夜温差较大,较易发生感冒,请适当增减衣服。体质较弱的朋友请注意防护。
晨练指数:天气晴朗,空气清新,是您晨练的大好时机,建议不同年龄段的人们积极参加户外健身活动。
交通指数:天气晴朗,路面干燥,交通气象条件良好,车辆可以正常行驶。
中暑指数:温度不高,其他各项气象条件适宜,中暑机率极低。
公园指数:天气寒冷,不适宜放风筝。
防晒指数:紫外线强度较弱,建议涂擦SPF在12-15之间,PA+的防晒护肤品。
旅行指数:晴天,天冷加上有风,旅游指数一般,您在外出游玩的时候可要多穿衣服,以免感冒呀!
</string>
<string>7℃ / -3℃</string>
<string>2月21日 多云</string>
<string>微风</string>
<string>1.gif</string>
<string>1.gif</string>
<string>4℃ / -6℃</string>
<string>2月22日 多云</string>
<string>微风</string>
<string>1.gif</string>
<string>1.gif</string>
<string>
北 京位于华北平原西北边缘,市中心位于北纬39度,东经116度,四周被河北省围着,东南和天津市相接。全市面积一万六千多平方公里,辖12区6县,人口 1100余万。北京为暖温带半湿润大陆性季风气候,夏季炎热多雨,冬季寒冷干燥,春、秋短促,年平均气温10-12摄氏度。
北京是世界历史文化名 城和古都之一。早在七十万年前,北京周口店地区就出现了原始人群部落“北京人”。而北京建城也已有两千多年的历史,最初见于记载的名字为“蓟”。公元前 1045年北京成为蓟、燕等诸侯国的都城;公元前221年秦始皇统一中国以来,北京一直是中国北方重镇和地方中心;自公元938年以来,北京又先后成为辽 陪都、金上都、元大都、明清国都。1949年10月1日正式定为中华人民共和国首都。
北京具有丰富的旅游资源,对外开放的旅游景点达200多处, 有世界上最大的皇宫紫禁城、祭天神庙天坛、皇家花园北海、皇家园林颐和园,还有八达岭、慕田峪、司马台长城以及世界上最大的四合院恭王府等各胜古迹。全市 共有文物古迹7309项,其中国家文物保护单位42个,市级文物保护单位222个。北京的市树为国槐和侧柏,市花为月季和菊花。另外,北京出产的象牙雕 刻、玉器雕刻、景泰蓝、地毯等传统手工艺品驰誉世界。
</string>
</ArrayOfString>
接下来是在mxml中调用webservices
<mx:WebService id="webService" wsdl="http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl" showBusyCursor="true" result="onLoad(event)" fault="faultHandler(event)"/>
调用查询城市的天气:webService.getWeatherbyCityName("北京");
public function onLoad(event:ResultEvent):void
{
var arr:ArrayCollection;
arr = (event.result) as ArrayCollection;
arr[6];
arr[7];这样就可以获得天气的信息了。查看上面的XML格式数据。再将值赋值给自己的空间就可以了。
}