乙個天氣介面的封裝及使用例子

2021-06-18 15:42:50 字數 817 閱讀 7134

中國天氣網暴露了一些獲取天氣資訊的介面:

這些介面會返回json格式的天氣資料,我們可以通過解析json,獲取相應城市的天氣資料。

url中的檔名指代城市的編號,具體的對應關係可以看下邊這篇文章,本文源**中亦有提供。

有了這些資料,我們就可以通過省和城市的名稱查詢天氣了。

具體思路:

以查詢北京天氣為例,首先根據「北京」獲取城市**「101010100」,然後拼接查詢url「」,傳送這個url請求,返回資料:

}
從中獲取需要的資料就可以了。這裡邊的資料很詳細,基本可以滿足常用的需求了。看我這邊顯示的效果:

為了實現這個例子,

(1)首先定義了兩個資源檔案:

weathercity.txt 城市名稱與**對應

weatherprovince.txt 省名稱與**對應,這個是從weathercity.txt中提煉出來的。

城市**的前5位是所屬省**。

(2)根據省名稱和城市名稱獲取城市**,然後獲取城市資料

這樣使用中文的省和城市名稱就可以快速查詢天氣資訊了。為了更快速的構造請求天氣的url,程式對城市**資料做了快取,一共兩千多條,存放到乙個dictionary中。

(3)這個例子使用asp.net mvc做的,移植到其它專案也很方便,核心的**都在(2)中。

本示例中的天氣資料都是實時從中國天氣網獲取的,有時可能速度較慢,您還可以存在本地伺服器,然後按照一定的時間規則去更新最新天氣情況。

這樣就可以隨心所欲的定義自己的天氣顯示方式了。

當然還有一點需要提醒到各位,此方法可以免費獲取到天氣資料,但是使用這些資料是需要授權的,詳細請看:

關於java介面的乙個好的例子

主機板上的pci插槽就是現實中的介面 你可你把音效卡,顯示卡,網絡卡都插在pci插槽上,而不用擔心那個插槽是專門插哪個的 原因是做主機板的廠家和做各種卡的廠家都遵守了統一的規定 包括尺寸,排線等等 但是各種卡的內部結構是一樣的麼?答案必然是否定的!我們來模擬一下 inte ce pci 這是介面,相...

關於介面的乙個理解

connection connection drivermanager.getconnection jdbc microsoft sqlserver localhost 1433 databasename student sa sqladmin connection connection只是定義了乙...

工廠模式 乙個介面封裝更多介面

簡單工廠模式,通過宣告乙個服務介面來封裝各個要實現內容的方法,每個方法再返回乙個介面。某類操作介面 inte ce sender 實現介面 class mailsender implements sender 實現介面 class smssender implements sender 服務介面 宣...