天气预报API使用心得
生活随笔
收集整理的這篇文章主要介紹了
天气预报API使用心得
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
進來做了幾個跟天氣預報有關的.NET桌面應用程序。苦于中國天氣網的SmartWeatherAPI需要申請。所以使用到了OpenWeatherMap 和 Forecast.io 的天氣數據API。做個記錄方便查閱。
兩個網站所提供的數據都比較齊全。OpenWeatherMap提供JSON與XML版本的數據,而Forecast.io僅僅提供JSON。不過對于C#.net來說有JSON就足夠了。.NET提供了JSON的解析器Json.NET。在 NuGget中可以聯機得到。
通過以下代碼可以將網站提供的JSON數據實例化一個讀取流。
1 WebRequest myrequest = WebRequest.Create("http://api.openweathermap.org/data/2.5/forecast/daily?id=" + cityID + "&cnt=7&mode=json"); 2 myrequest.UseDefaultCredentials = false; 3 WebResponse myresponse = myrequest.GetResponse(); 4 Stream resStream = myresponse.GetResponseStream(); 5 StreamReader sr = new StreamReader(resStream, System.Text.Encoding.Default); 8 string jsontext = sr.ReadToEnd(); 9 JsonReader reader = new JsonTextReader(new StringReader(jsontext));從而對其中的數據進行讀取
1 while (reader.Read()) 2 {if (reader.Value + "" == "min") //最低氣溫 5 { 6 reader.Read(); 7 if (reader.ValueType.ToString() == "System.Double") 8 { 9 double temd = (double)reader.Value; 10 tMin[i1] = temd; 12 }else 15 { 16 long teml = (long)reader.Value; 17 tMin[i1] = teml; 18 } 19 tMin[i1] = (int)(tMin[i1] - 273.15); 20 i1++; 21 } 22 if (reader.Value + "" == "max") //最高氣溫 23 { 24 reader.Read(); 25 if (reader.ValueType.ToString() == "System.Double") 26 { 27 double temd = (double)reader.Value; 28 tMax[i2] = temd;}else 33 { 34 long teml = (long)reader.Value; 35 tMax[i2] = teml; 36 } 37 tMax[i2] = (int)(tMax[i2] - 273.15); 38 i2++; 39 }關于接口中返回的數據,都是簡單的英語。給出鏈接。
OpenWeatherMap? ?Forecast.io
第一次寫技術博客,雖然水平不高。也在彳亍。
?
轉載于:https://www.cnblogs.com/victorjyan/p/4050806.html
總結
以上是生活随笔為你收集整理的天气预报API使用心得的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 判断指定目录下的所有[图片]的扩展名,
- 下一篇: 分拆素数和