我查了很多其他的例子,并且找不到我想要的东西,有点背景。我正在制定一个解决方案,以防止打开浏览器窗口。
当查看目标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.
}
答案 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);
}