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

Ваш код проверяет то же самое , снова и снова. Он не делает новых запросов, он смотрит только на ответ от первого (и только запроса).

От MSDN:

Повторные вызовы GetResponse возвращают один и тот же объект ответа; запрос не переиздается.

Вам нужно будет поместить весь код, который делает запрос в цикле, чтобы снова запустить весь процесс запроса/ответа.

Также обратите внимание, что если бы вы использовали этот код для моего сайта, я был бы очень расстроен.

+0

О, черт! Я не думал, конечно, он получает тот же ответ. Благодарю. И да, я знаю, что это может подпасть под Дос, но я использую его для этого вообще. Единственная причина, по которой я не откладываю запросы, - это тесты. – FrostyFire

+0

@JABПодробнее Хорошо, если вы знаете, что делает ваш код! Я бы попросил вас добавить комментарий в код (выше) о задержке между запросами в качестве предупреждения для копий и пастеров, которые могут появиться и попытаться использовать его как есть. –

+0

Хорошая идея Я буду – FrostyFire

Смежные вопросы