.ASPX已更改检查

时间:2015-10-06 12:43:17

标签: c# .net

我查了很多其他的例子,并且找不到我想要的东西,有点背景。我正在制定一个解决方案,以防止打开浏览器窗口。

当查看目标URL时,Header始终是相同的,直到页面中的javascript工作以查看是否已发布新消息。此时,如果您的页面处于活动状态并且未单击java脚本将其更改为“无新消息”的确认按钮,则会动态更改。

我的最终目标是检查.ASPX文件的网站,需要进行身份验证才能查看。我已经尝试过这段代码来检查文件的大小,希望只检测整个大小的变化,但是当没有真正的更新时,它的查找大小会经常变化。

有什么想法吗?

long bbssize = 0; // start size.
long bbssizewas = 0; // start size.

包围在一个滴答声中......

HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://www.fictionalsite.com/Main_View.aspx");
req.Method = "HEAD";
req.Credentials = CredentialCache.DefaultCredentials;
HttpWebResponse resp = (HttpWebResponse)(req.GetResponse());
long lenth = resp.ContentLength;
bbssize = lenth;
if (bbssize != bbssizewas) // checks for change.
{
    pictureBox1.BackColor = Color.Lime; // changes color to green.
    bbssizewas = bbssize; // sets new value to check.
}

1 个答案:

答案 0 :(得分:1)

我发现我的脚本工作不正确的原因,.ASPX位置每隔几秒就以字节波动大约11次,这看起来有变化。

我调整了代码以添加“字节”来解释它,导致if语句只有在发生重大变化时才会跳转。

//在节目的早期声明......

    long timerisat = 0;
    long timerwas = 0;

//包含在计时器中。

            System.Net.WebClient client = new System.Net.WebClient();
            client.Credentials = CredentialCache.DefaultCredentials;
            client.OpenRead("http://example.com/thewebpage.aspx");
            Int64 bytes_total = Convert.ToInt64(client.ResponseHeaders["Content-Length"]);
            timerisat = bytes_total;

            if (timerisat > timerwas) // checks for change.
            {
                pictureBox1.BackColor = Color.DarkRed; // changes color to green.
                button7.FlatAppearance.BorderColor = Color.Red;
                timerwas = timerisat + 20; // sets new value to check. (adds 20 bytes)         
                // Notification pops up on tooltip.
                this.notifyIcon1.BalloonTipText = "MyTSC Bulletin Board - Updated";
                this.notifyIcon1.BalloonTipTitle = "Workspace";
                this.notifyIcon1.Visible = true;
                this.notifyIcon1.ShowBalloonTip(10);
            }