使用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());
            }
        }
    }
}

 先溜了,欢迎大家批评指正!

 

以上是关于使用WebService天气接口,自动获取天气,并定时写入数据库的主要内容,如果未能解决你的问题,请参考以下文章

Java通过webservice接口获取天气信息

WebService 天气预报webservice接口

WebService

C#调用WebService获取天气信息

kettle通过Webservice获取天气信息

WebService