C#获取中国天气网免费天气预报信息
2017-04-09 16:11
471 查看
中国天气网接口地址:”http://wthrcdn.etouch.cn/WeatherApi?citykey=” + weatherCityCode(为城市code);
获取的信息为xml数据,所以在使用前我们可以将它转化成字符串,之后在序列化成天气类;
下面是转化过程中我们需要用到的方法(序列化的实体类在文章结尾附)
————转化过程中需要用到的方法—————–
—————-天气实体类———————-
获取的信息为xml数据,所以在使用前我们可以将它转化成字符串,之后在序列化成天气类;
下面是转化过程中我们需要用到的方法(序列化的实体类在文章结尾附)
string weatherInfoUrl = "http://wthrcdn.etouch.cn/WeatherApi?citykey=" + weatherCityCode; string weatherstr = getHtml2(weatherInfoUrl); resp tempInfo = XmlDeSeralizer<resp>(weatherstr);
————转化过程中需要用到的方法—————–
private static string getHtml2(string url) { StringBuilder s = new StringBuilder(102400); HttpWebRequest wr = (HttpWebRequest)WebRequest.Create(url); wr.Headers[HttpRequestHeader.AcceptEncoding] = "gzip, deflate"; HttpWebResponse response = (HttpWebResponse)wr.GetResponse(); head(response); GZipStream g = new GZipStream(response.GetResponseStream(), CompressionMode.Decompress); byte[] d = new byte[20480]; int l = g.Read(d, 0, 20480); while (l > 0) { s.Append(Encoding.UTF8.GetString(d, 0, l)); l = g.Read(d, 0, 20480); } return s.ToString() ; } private static void head(HttpWebResponse r) { string[] keys = r.Headers.AllKeys; for (int i = 0; i < keys.Length; ++i) { Console.WriteLine(keys[i] + " " + r.Headers[keys[i]]); } } public static T XmlDeSeralizer<T>(string xmlStr) where T : class,new() { XmlSerializer xs = new XmlSerializer(typeof(T)); using (StringReader reader = new StringReader(xmlStr)) { return xs.Deserialize(reader) as T; } }
—————-天气实体类———————-
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Soian.Zhitai.Models.WeatherForecast { public class resp { public string city { get; set; } public string updateti 4000 me { get; set; } public string wendu { get; set; } public string fengli { get; set; } public string shidu { get; set; } public string fengxiang { get; set; } public environment environment { get; set; } public alarm alarm { get; set; } public List<weather> forecast { set; get; } } public class environment { public string aqi { get; set; } public string pm25 { get; set; } public string suggest { get; set; } public string quality { get; set; } public string MajorPollutants { get; set; } public string time { get; set; } } public class alarm { public string cityName { get; set; } public string alarmType { get; set; } public string alarmDegree { get; set; } public string alarmText { get; set; } public string alarm_details { get; set; } public string standard { get; set; } public string suggest { get; set; } } public class weather { public string date { get; set; } public string high { get; set; } public string low { get; set; } public climate day { get; set; } public climate night { get; set; } } public class climate { public string type { get; set; } public string fengxiang { get; set; } public string fengli { get; set; } } }
相关文章推荐
- 一段获取天气信息的C#代码
- 中国天气网免费天气预报接口API
- 阿里云API:全国天气预报查询(免费版)(C#实现)
- 免费获取欧洲ECMWF两年的天气预报数据:
- 分享以及免费天气信息获取
- GraduateDesign-给APP添加获取位置信息和天气预报的功能(json)
- java调用webservice天气预报(SOAP请求的方式获取天气信息并解析返回的XML)
- Android网络编程之Web Service获取天气预报( 获取天气预报信息)
- 半吊子学习Swift--天气预报程序-获取天气信息
- 使用多线程获取中国天气网天气信息
- 获取天气预报c#
- python调用中国天气网的公用API获取天气信息
- 中国天气网免费天气预报接口API
- C#调用WebService获取天气信息
- 免费天气API,全国天气 JSON API接口,可以获取五天的天气预报
- java调用webservice天气预报(SOAP请求的方式获取天气信息并解析返回的XML)
- 免费天气API,全国天气 JSON API接口,可以获取五天的天气预报
- 用python调用中国天气网API获取各大城市的天气信息
- java调用webservice天气预报(SOAP请求的方式获取天气信息并解析返回的XML)
- C# 获取天气的信息