穩定高效的天氣API接口是很少有的,本站前一段時間開發了一個萬年曆,需要帶天氣預報,花了幾天功夫,集成和容錯處理好對外開放的天氣接口。天氣接口支持返回 JSON 和 XML 結果。並且可以獲取到昨天,以及今天和未來4
天的天氣預報。那麼下面直接介紹天氣預報的接口吧。
天氣API詳情介紹 在 API 中心:http://www.sojson.com/api/weather.html ,下面只介紹下調用方式,然後 用 Java 語言調用演示一下。
天氣預報 API 接口 JSON返回
public static void json() throws Exception{ //參數url化 String city = java.net.URLEncoder.encode("北京", "utf-8"); //拼地址 String apiUrl = String.format("http://www.sojson.com/open/api/weather/json.shtml?city=%s",city); //開始請求 URL url= new URL(apiUrl); URLConnection open = url.openConnection(); InputStream input = open.getInputStream(); //這裏轉換爲String,帶上包名,怕你們引錯包 String result = org.apache.commons.io.IOUtils.toString(input,"utf-8"); //輸出 System.out.println(result); }
天氣預報 JSON 返回值:
{ "data": { "yesterday": { "date": "26日星期五", "high": "高溫 31℃", "fx": "南風", "low": "低溫 17℃", "fl": "微風", "type": "晴" }, "city": "北京", "aqi": "83", "forecast": [ { "date": "27日星期六", "high": "高溫 34℃", "fengli": "微風級", "low": "低溫 21℃", "fengxiang": "西南風", "type": "晴" }, { "date": "28日星期天", "high": "高溫 36℃", "fengli": "3-4級", "low": "低溫 22℃", "fengxiang": "北風", "type": "多雲" }, { "date": "29日星期一", "high": "高溫 29℃", "fengli": "微風級", "low": "低溫 18℃", "fengxiang": "東風", "type": "陰" }, { "date": "30日星期二", "high": "高溫 30℃", "fengli": "微風級", "low": "低溫 18℃", "fengxiang": "南風", "type": "陰" }, { "date": "31日星期三", "high": "高溫 32℃", "fengli": "3-4級", "low": "低溫 20℃", "fengxiang": "南風", "type": "多雲" } ], "ganmao": "各項氣象條件適宜,發生感冒機率較低。但請避免長期處於空調房間中,以防感冒。", "wendu": "27" }, "status": 200, "message": "OK" }