2013-04-17 37 views
0

那么这个问题几乎可以解释它。我知道在String.equals期间代码非常脏,但我只想看看我是否理解标题响应。很明显,我没有,因为我在我的浏览器中观看,当添加新的问题时,我的程序从不输出“是的,它改变了”为什么?为什么此代码无法检测页面更新?

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Web; 
using System.IO; 
using System.Net; 

namespace ConsoleApplication4 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 

      Uri myUri = new Uri("http://stackoverflow.com/questions?sort=newest"); 

      HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(myUri); 



      HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse(); 
      string org = myHttpWebResponse.Headers.GetValues("Date")[0]; 
      string newone = ""; 

      while (true) //STRICTING FOR TESTING. THIS WOULD BE A Dos ATTACK AS IT NEVER HAS A DELAY BETWEEN REQUESTS. 
      { 

       myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse(); 
       newone = myHttpWebResponse.Headers.GetValues("Date")[0]; 

       if (!newone.Equals(org)) 
        break; 
      } 


      Console.WriteLine("Yep it changed"); 
      Console.ReadLine(); 
     } 
    } 
} 
+0

不要降低我的愚蠢问题。我试图让MODS删除它。 – FrostyFire

回答

1

您的代码一遍又一遍地检查相同的HttpWebResponse。它没有提出新的请求,它只查看第一个(也是唯一的请求)的响应。

MSDN

到的GetResponse

多次调用返回相同的响应对象;该请求不会重新发布。

您将不得不将所有发出请求的代码放入循环中,以重新启动整个请求/响应过程。

另外请注意,如果您在我的网站上运行此代码,我会非常沮丧。

+0

哦,天哪!我没有想到,当然它得到了同样的回应。谢谢。而且我知道这可能属于Dos,但是我完全可以使用它。我不拖延请求的唯一原因是测试。 – FrostyFire

+0

@JABFreeware好的,只要你知道你的代码在做什么!我几乎要求你在上面的代码中添加一条关于延迟请求的注释,作为可能出现的复制和粘贴的警告,并尝试按原样使用它。 –

+0

好主意我会 – FrostyFire

相关问题