先:程式一開始運行預設的是顯示本地的天氣(介面好難看咯)當擷取本地地址失敗的時候,程式預設顯示北京的天氣,可以在上面的下拉式清單裡面選擇相應的城市來擷取相應城市的天氣。全國各地區都是有編碼的,所以當你在下拉式清單裡面選擇相關的地方時,程式將會得到相關地區的編碼,然後根據編碼組成相應的URL地址,以這個URL地址擷取到相關的天氣資訊。當然中央天氣網站提供了一個API供我們調用,如下
http://xoap.weather.com/weather/local/CHXX0138?cc=*&unit=m&dayf=2&link=xoap&prod=xoap&par=1220552427&key=c168fcf83120f8ed
CHXX0138 為武漢的天氣代碼
Unit=m 溫度以攝氏度顯示;去掉該參數,溫度以華氏度顯示
Dayf為0,1返回當天天氣,其他數字為多天天氣,最大可為5,返回當天及往後4天的天氣預報
Par為註冊時返回的Partner ID: 1220552427
Key為註冊時返回的License Key: c168fcf83120f8ed
上面的調用要求我們需要知道相應地區的代碼這樣才能擷取到天氣資訊,擷取到的是XML檔案,剩下的就是分析這個XML檔案,擷取到天氣資訊。
當然新浪、雅虎網站也為我們提供了API,介面如下
新浪天氣預報API
http://php.weather.sina.com.cn/xml.php?city=武漢&password=DJOYnieT8234jlsK&day=0
其中,city後的城市可用java.net.URLEncoder.encode(“武漢”,” gb2312”);也可以直接寫”武漢”;但不能用”wuhan”。
Password固定
Day為0表示當天天氣,1表示第二天的天氣,2表示第三天的天氣,以此類推,最大為4
返回XML檔案,也需要分析XML檔案。
yahoo天氣預報
http://xml.weather.yahoo.com/forecastrss?w=2163866&u=c
w對應各個地方在yahoo資料庫中的WOEID,如北京的WOEID是2151330;武漢為2163866;
u 為溫度的單位,c表示攝氏度;f表示華氏度
另附全國主要城市的編碼
北京CHXX0008
哈爾濱CHXX0046
長春CHXX0010
瀋陽CHXX0119
大連CHXX0019
天津CHXX0133
呼和浩特CHXX0249
烏魯木齊CHXX0135
西寧CHXX0236
銀川CHXX0259
蘭州CHXX0079
西安CHXX0141
拉薩CHXX0080
成都CHXX0016
重慶CHXX0017
貴陽CHXX0039
昆明CHXX0076
太原CHXX0129
石家莊CHXX0122
濟南CHXX0064
青島CHXX0110
鄭州CHXX0165
合肥CHXX0448
南京CHXX0099
徐州CHXX0037
上海CHXX0116
武漢CHXX0138
長沙CHXX0013
南昌CHXX0097
杭州CHXX0044
福州CHXX0031
廈門CHXX0140
南寧CHXX0100
桂林CHXX0434
海口CHXX0502
廣州CHXX0037
香港CHXX0049
澳門CHXX0512
台北TWXX0021
高雄TWXX0013
台南TWXX0020
需要全部城市的地區編碼
點擊進入 下載(不需要積分)。