天气预报API使用心得
2020-12-13 13:58
标签:style blog http color io os ar 使用 for 进来做了几个跟天气预报有关的.NET桌面应用程序。苦于中国天气网的SmartWeatherAPI需要申请。所以使用到了OpenWeatherMap 和 Forecast.io 的天气数据API。做个记录方便查阅。 两个网站所提供的数据都比较齐全。OpenWeatherMap提供JSON与XML版本的数据,而Forecast.io仅仅提供JSON。不过对于C#.net来说有JSON就足够了。.NET提供了JSON的解析器Json.NET。在 NuGget中可以联机得到。 通过以下代码可以将网站提供的JSON数据实例化一个读取流。 从而对其中的数据进行读取 关于接口中返回的数据,都是简单的英语。给出链接。 OpenWeatherMap Forecast.io 第一次写技术博客,虽然水平不高。也在彳亍。 天气预报API使用心得 标签:style blog http color io os ar 使用 for 原文地址:http://www.cnblogs.com/victorjyan/p/4050806.html1 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 }