阿里云天气预报接口代码-C#应用程序版

//using Newtonsoft.Json;
//using Newtonsoft.Json.Linq;
//using System.Security.Cryptography.X509Certificates;
//using System.Net.Security;


       private const String host = "http://jisutqybmf.market.alicloudapi.com";

        private const String path = "/weather/";
        private const String method = "GET";

        private const String appcode = "edc41a0bfae74864b90ce267502e029a";



        public void tq()

        {

//检测最后一条已经保存的天气是否快临近当天,如果临近就重新读取天气

            string cmdtxt1 = "select top 1 * from jzmk_weather order by date desc ";
            string config1 = "Data Source=***;Initial Catalog=ERP2;User ID=sa;Password=***";
            SqlConnection sqlcon1 = new SqlConnection(config1);
            SqlDataAdapter sqlda1 = new SqlDataAdapter(cmdtxt1, sqlcon1);
            DataSet ds1 = new DataSet();
            sqlda1.Fill(ds1);
            dt0=ds1.Tables[0];
            JObject jo1 = new JObject();
            if (dt0.Rows.Count > 0)
            {
                DateTime dtime1 = DateTime.Now;
                DateTime dtime2 = DateTime.Parse(dt0.Rows[0]["date"].ToString()).AddDays(1);
                TimeSpan ts = dtime2 - dtime1;
                if (ts.TotalDays < 1)
                {
                    jo1=tq1();
                }
            }
            else
            {
                jo1 = tq1();
            }
            dt1 = new DataTable();
            dt1.Columns.Add("date");
            dt1.Columns.Add("RiQi");
            dt1.Columns.Add("week");
            dt1.Columns.Add("weat");
            dt1.Columns.Add("low");
            dt1.Columns.Add("high");
            try
            {
                foreach (var dt10 in jo1["result"]["daily"])
                {
                    DataRow dr = dt1.NewRow();
                    string rq2 = dt10["date"].ToString();
                    DateTime dtime3 = DateTime.Parse(rq2);
                    string rq3 = dtime3.ToString("yyyy年MM月dd日");
                    dr[0] = rq2;
                    dr[1] = rq3;
                    dr[2] = dt10["week"].ToString();
                    dr[3] = dt10["day"]["weather"].ToString();
                    dr[4] = dt10["night"]["templow"].ToString();
                    dr[5] = dt10["day"]["temphigh"].ToString();
                    dt1.Rows.Add(dr);


                }
            }
            catch (Exception e1)
            {
                string r4 = e1.Message;
            }
            
            if (sqlcon1.State.ToString() == "Open")
            {
            }
            else
            {
                sqlcon1.Open();
            }
            SqlCommand sqlcom1 = new SqlCommand(cmdtxt1, sqlcon1);
            for (int i = 0; i < dt1.Rows.Count; i++)
            {
                bool b1 = true;
                for (int j = 0; j < dt0.Rows.Count; j++)
                {
                    DateTime dtime5 = DateTime.Parse(dt0.Rows[j]["date"].ToString().Trim());
                    DateTime dtime6 = DateTime.Parse(dt1.Rows[i]["date"].ToString().Trim());
                    if (dtime6 < dtime5 || dtime6 == dtime5)
                    {
                        b1 = false;
                        break;
                    }
                }
                if (b1)
                {
                    try
                    {
                        cmdtxt1 = "insert into jzmk_weather(date,RiQi,week,weat,low,high) values('" + dt1.Rows[i]["date"].ToString().Trim() + "','" + dt1.Rows[i]["RiQi"].ToString().Trim() + "','" + dt1.Rows[i]["week"].ToString().Trim() + "','" + dt1.Rows[i]["weat"].ToString().Trim() + "','" + dt1.Rows[i]["low"].ToString().Trim() + "','" + dt1.Rows[i]["high"].ToString().Trim() + "')";
                        sqlcom1 = new SqlCommand(cmdtxt1, sqlcon1);
                        string r3 = sqlcom1.ExecuteNonQuery().ToString();
                        r3 = r3 + "  ";
                    }
                    catch (Exception e1)
                    {
                        string r4 = e1.Message;
                    }
                    
                }
            }


            sqlcon1.Close();
        }
        public JObject tq1()

        {

//读取天气预报函数(以枣庄为例),如其他城市请查询并修改 297

            String querys = "city=&citycode=&cityid=297&ip=&location=";
            String bodys = "";
            String url = host + path + "query?" + querys;
            HttpWebRequest httpRequest = null;
            HttpWebResponse httpResponse = null;


            if (0 < querys.Length)
            {
                url = url + "?" + querys;
            }


            if (host.Contains("https://"))
            {
                ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
                httpRequest = (HttpWebRequest)WebRequest.CreateDefault(new Uri(url));
            }
            else
            {
                httpRequest = (HttpWebRequest)WebRequest.Create(url);
            }
            httpRequest.Method = method;
            httpRequest.Headers.Add("Authorization", "APPCODE " + appcode);
            if (0 < bodys.Length)
            {
                byte[] data = Encoding.UTF8.GetBytes(bodys);
                using (Stream stream = httpRequest.GetRequestStream())
                {
                    stream.Write(data, 0, data.Length);
                }
            }
            try
            {
                httpResponse = (HttpWebResponse)httpRequest.GetResponse();
            }
            catch (WebException ex)
            {
                httpResponse = (HttpWebResponse)ex.Response;
            }


            string s1 = httpResponse.StatusCode.ToString() + httpResponse.StatusCode.ToString() + httpResponse.Method + httpResponse.Headers;




            Stream st = httpResponse.GetResponseStream();
            StreamReader reader = new StreamReader(st, Encoding.GetEncoding("utf-8"));
            string s2 = reader.ReadToEnd();
            JsonSerializer serializer = new JsonSerializer();
           // string jsonData = JsonConvert.SerializeObject(s2);
            //JObject jo =(JObject) serializer.Deserialize(s2);
            JObject jo = (JObject)JsonConvert.DeserializeObject(s2);
            return jo;
        }
        public static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
        {
            return true;
        }

赞赏请扫下面的微信支付码:



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值