//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;
}
赞赏请扫下面的微信支付码: