使用WebService天气接口,自动获取天气,并定时写入数据库
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用WebService天气接口,自动获取天气,并定时写入数据库相关的知识,希望对你有一定的参考价值。
因为我也是菜鸟,所以尽量写的简单些。。。。。
1. 使用的天气接口为 http://www.webxml.com.cn/WebServices/WeatherWebService.asmx ,虽说是免费的,但是有使用次数限制
2. 开发使用的是VS2012 中的 C#控制台程序,开发时需要添加WEB引用,没错,地址就是上面的URL
3. 引用方法:右键项目 -> 添加服务引用 -> 左下角高级选项 -> 添加Web引用,如下图,URL为接口地址,Web引用名随你喜欢就填什么,我填的是Weather
4. 引入服务命名空间
using GetWeater.Weather;
5. 调用服务,得到天气数据,因为返回的是数组,所以需要我们自己选择自己需要的数据,我需要的是当天的天气概况。
Weather.WeatherWebService s = new Weather.WeatherWebService(); string[] str = new string[22]; str = s.getWeatherbyCityName("上海"); string todayweather = str[6]; //获取的是当天的实时天气概况
6. ,因为正在上班,没时间写,直接贴出完整代码
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using GetWeater.Weather; using System.Threading; using System.Timers; using System.Data; using System.Data.SqlClient; using System.Collections; namespace GetWeater { class Program { private static void Say(string txt) { Console.WriteLine(txt); } static void Main(string[] args) { while (true) { MyTask(); int t = 1000 * 60 * 60 * 24; Thread.Sleep(t); // 时间周期毫秒 } } static void MyTask() { SqlConnection conn = new SqlConnection("server=.;database=weather;uid=sa;pwd=sa"); try { Weather.WeatherWebService s = new Weather.WeatherWebService(); string[] str = new string[22]; str = s.getWeatherbyCityName("上海"); string todayweather = str[6]; conn.Open(); Console.WriteLine("数据库连接成功!\\n") string sql = "insert into WeatherMsg(Content)Values(‘" + todayweather + "‘; SqlCommand sqlcom = new SqlCommand(sql, conn); sqlcom.ExecuteNonQuery(); Console.WriteLine("数据更新成功!\\n"); conn.Close(); Console.WriteLine("关闭数据库连接!\\n"); } catch (Exception a) { Console.WriteLine(a.ToString()); } } } }
先溜了,欢迎大家批评指正!