C#编写的获取天气信息
来源:互联网 发布:淘宝大学鹰图学院 编辑:程序博客网 时间:2024/05/17 08:06
根据一位网友写的java天气信息获取改编的,参考http://blog.csdn.net/lanpiao_87/article/details/41556265
class Weather { public static string GetWeatherXml(string source,int day) { string dst = ""; string requestUrl = "http://php.weather.sina.com.cn/xml.php?city={keyWord}&password=DJOYnieT8234jlsK&day=0";//获取当天天气 requestUrl = requestUrl.Replace("{keyWord}", HttpRequestUtil.UrlEncode(source, "GBK")); dst = HttpRequestUtil.HttpRequest(requestUrl); return dst; } public static string GetWeatherInfo(string source) { StringBuilder buffer = new StringBuilder(); buffer.Append(source).Append("今天的天气情况如下: \n\n"); string weatherXml = GetWeatherXml(source,0); if (null == weatherXml || "" == weatherXml) { return ""; } Console.WriteLine(weatherXml); XmlDocument xmldoc = new XmlDocument(); xmldoc.Load(new System.IO.MemoryStream(System.Text.Encoding.UTF8.GetBytes(weatherXml))); XmlNode node_status1 = xmldoc.SelectSingleNode("/Profiles/Weather/status1"); XmlNode node_direction1 = xmldoc.SelectSingleNode("/Profiles/Weather/direction1"); XmlNode node_temperature1 = xmldoc.SelectSingleNode("/Profiles/Weather/temperature1"); XmlNode node_temperature2 = xmldoc.SelectSingleNode("/Profiles/Weather/temperature2"); XmlNode node_ssd_l = xmldoc.SelectSingleNode("/Profiles/Weather/ssd_l"); XmlNode node_yd_s = xmldoc.SelectSingleNode("/Profiles/Weather/yd_s"); XmlNode node_savedate_weather = xmldoc.SelectSingleNode("/Profiles/Weather/savedate_weather"); XmlNode node_ssd_s = xmldoc.SelectSingleNode("/Profiles/Weather/ssd_s"); string status1 = node_status1.InnerText; string savedate_weather = node_savedate_weather.InnerText; string direction1 = node_direction1.InnerText; string temperature1 = node_temperature1.InnerText; string temperature2 = node_temperature2.InnerText; string ssd_l = node_ssd_l.InnerText; string yd_s = node_yd_s.InnerText; string ssd_s = node_ssd_s.InnerText; buffer.Append(savedate_weather).Append("\n").Append(status1).Append(" ").Append(direction1).Append(" ") .Append(temperature2).Append("°C- ").Append(temperature1).Append("°C ").Append(ssd_l).Append("\n") .Append("温馨提示:").Append(ssd_s); return (null == buffer ? "" : buffer.ToString()); ; } static void Main(string[] args) { string str = GetWeatherInfo("上海"); Console.WriteLine(str); } }
class HttpRequestUtil { public static string HttpRequest(string requestUrl) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(requestUrl); request.Method = "GET"; request.ContentType = "application/x-www-form-urlencoded"; HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream myResponseStream = response.GetResponseStream(); StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8")); string retString = myStreamReader.ReadToEnd(); myStreamReader.Close(); myResponseStream.Close(); return retString; } /// <summary> /// 转码 /// </summary> /// <param name="source"></param> /// <param name="encode"></param> /// <returns></returns> public static string UrlEncode(string source, string encode) { string result = source; try { Encoding encoding = Encoding.GetEncoding(encode); result = UrlEncoding(source, encoding); } catch (Exception) { throw; } return result; } /// <summary> /// 由java编码转换为C#编码的方法 /// </summary> /// <param name="temp"></param> /// <param name="encoding"></param> /// <returns></returns> private static string UrlEncoding(string temp, Encoding encoding) { StringBuilder stringBuilder = new StringBuilder(); for (int i = 0; i < temp.Length; i++) { string t = temp[i].ToString(); string k = HttpUtility.UrlEncode(t, encoding); if (t == k) { stringBuilder.Append(t); } else { stringBuilder.Append(k.ToUpper()); } } return stringBuilder.ToString(); } }
运行效果:
0 0
- C#编写的获取天气信息
- C# 获取天气的信息
- 获取天气信息的脚本
- 如何获取天气信息
- 获取天气信息
- Qt获取天气信息
- python3获取天气信息
- webservice--获取天气信息
- 获取天气信息
- ajax获取天气信息
- 360天气信息获取
- C++获取天气信息
- Js 获取天气信息
- C#获取中国天气网免费天气预报信息
- WebService获取Google天气信息
- 利用Python获取天气信息
- 利用json获取天气信息
- 利用json获取天气信息
- vectorLine画线
- android studio 如何打包成jar包
- AFNetworking 的核心 AFURLSessionManager(二)
- poj2488 A Knight's Journey
- sphinx 配置文件全解析
- C#编写的获取天气信息
- 一步一步解析集合框架ArrayList源码(2)
- 程序猿男票为何特别想要那个?
- Hive安装与使用
- 交流直流测试
- Hibernate和Spring整合时,获取Session失败
- 处理请求和响应 AFURLSerialization(三)
- js面向对象-原型
- java中@Override有什么作用