首页 > 代码库 > 天气预报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 } else15 {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; } else33 {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
第一次写技术博客,虽然水平不高。也在彳亍。
天气预报API使用心得
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。