2013-04-17 1 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

내 어리석은 질문을 내리지 마세요. 나는 그것을 삭제할 수있는 개조를 얻으려고했다. – FrostyFire

답변

1

코드는 반복, 같은 HttpWebResponse을 확인하고 있습니다. 새로운 요청을하는 것이 아니며 첫 번째 응답 (및 유일한 요청)을보고 있습니다. MSDN에서

:하는 GetResponse에

다중 호출은 동일한 응답 개체를 반환; 요청은 재발행되지 않습니다.

전체 요청/응답 프로세스를 다시 시작하려면 루프 내에 요청하는 모든 코드를 넣어야합니다.

또한 웹 사이트에 대해이 코드를 실행하는 경우 매우 불안해합니다.

+0

오 이런! 나는 생각하지 않았습니다. 물론 같은 반응을 얻습니다. 감사. 그리고 예, 저는 이것이 Dos에 속할 수 있음을 알고 있지만, 저는 그것을 Dos에 사용하고 있습니다. 요청을 지연시키지 않는 유일한 이유는 테스트 때문입니다. – FrostyFire

+0

@JABFreeware 좋아, 코드가하는 일을 알고있는 한! 위의 코드에서 요청 간 지연에 대한 설명을 덧붙이고 요청한 복사 및 붙여 넣기에 대한 경고로 그대로 사용하도록 요청할 것입니다. –

+0

좋은 아이디어 나는 – FrostyFire