判断json网址变化就刷新
需求为:
网页 http://111.2.160.170:91/ngnscreenmgr/data/123.json会返回一个json 其中website字段记录着地址
做到website与网页不一样就刷新网页(注:不要wsdl 就是http获取json文件)
之前有道友帮忙总结了思路 具体分为四步
1.用timer控件每隔5s发送一个http请求到你的.json网址。
2.接收到返回的数据,可以用Json.NET反序列化成一个类。
3.通过对比[类.url]与之前的[url]是否一样。
4.如果不一样,则用你的webkit加载当前[类.url].
(刷新功能可以直接调用webKitBrowser1.Reload();)
然后我把我写的在这里贴出来 ,求大家看看哪里需要修改。
本人比较菜, 诸君详细点明思路即可,如有源码 更好!
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Threading;
using System.Collections;
using System.Timers;
using System.Net;
using System.IO;
using System.Web;
using System.Xml.Linq;
using Newtonsofton;.Js
using System.Web.Script.Serialization;
using System.Timers;
namespace ngn
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.Load += Form1_Load;
//1 , 新建定时器 urlTimer
System.Timers.Timer urlTimer;
void Form1_Load(object sender, EventArgs e)
{
urlTimer = new System.Timers.Timer(4000);//定时周期4秒
urlTimer.Elapsed += urlTimer_Elapsed;//到4秒周期做的事件
urlTimer.AutoReset = true; //定时器不停刷
}
void urlTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
//2, 完成的事件, 这里空白 不知如何下手
}
//内嵌 webkitBroser1
private void webKitBrowser1_Load(object sender, EventArgs e)
{
}
//使用Newtonsoftonjson反序列化
public static T GetStr<T>(string url)
{
string SerAadd = url;
XDocument doc;
HttpWebRequest request = WebRequest.Create(SerAadd) as HttpWebRequest;
try
{
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
StreamReader reader = new StreamReader(response.GetResponseStream());
string result = reader.ReadToEnd();
return SerializeKit.JsonDeserialize<T>(result);
}
}
catch (Exception e)
{
}
return default(T);
}
}
public static class SerializeKit
{
#region JsonSerialize
/// <summary>
///
/// </summary>
/// <param name="object"></param>
/// <returns></returns>
public static string JsonSerialize(object @object)
{
try
{
var serializer = new JavaScriptSerializer();
return serializer.Serialize(@object);
}
catch
{
return null;
}
}
#endregion
#region JsonDeserialize
/// <summary>
///
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="jsonString"></param>
/// <returns></returns>
public static T JsonDeserialize<T>(string jsonString)
{
try
{
var serializer = new JavaScriptSerializer();
return serializer.Deserialize<T>(jsonString);
}
catch
{
return default(T);
}
}
#endregion
}
public class ItemTypeMassageEntity
{
[JsonProperty("id")]
public int ID { get; set; }
[JsonProperty("screen_number")]
public string Screen_number { get; set; }
[JsonProperty("screen_resolution")]
public string Screen_resolution { get; set; }
[JsonProperty("IP")]
public string ip { get; set; }
[JsonProperty("port")]
public string Port { get; set; }
[JsonProperty("website")]
public string Website { get; set; }
}
}
3 、 对比我也没写 开始迷了 有人可以帮忙补足 一下或者是相信讲讲吗?