C #: завершить загрузку System.Net.WebClient (чего бы то ни было), когда веб-страница не отвечает - PullRequest
0 голосов
/ 03 мая 2011

Если веб-сайт не отвечает примерно через одну секунду, вероятно, можно с уверенностью предположить, что это плохая ссылка и что мне следует перейти к следующей ссылке в наборе «возможных ссылок».

Как мне сказать WebClient прекратить попытки загрузки через определенное время?

Полагаю, я мог бы использовать поток, но если загрузка занимает больше одной секунды, это нормально.Я просто хочу убедиться, что он соединяется с сайтом.

Возможно, мне следует изменить заголовки WebClient, но я не вижу, что мне следует изменить.

Возможно, мне следует использоватькакой-нибудь другой класс в пространстве имен System.Net?

1 Ответ

2 голосов
/ 03 мая 2011

Если вы используете класс System.Net.WebRequest , вы можете установить свойство Timeout как короткое и обрабатывать исключения тайм-аута.

try{
    var request = WebRequest.Create("http://www.contoso.com");
    request.Timeout = 5000; //set the timeout to 5 seconds
    request.Method = "GET";
    var response = request.GetResponse();
}
catch(WebException webEx){
   //there was an error, likely a timeout, try another link here
}
...