Избегайте исключений в WebRequestObject - PullRequest
0 голосов
/ 15 июля 2010

Я читаю данные с веб-сайта следующим образом:

webRequestObj = (HttpWebRequest)WebRequest.Create("http://localhost/503errorPage.php");
theResponse = webRequestObj.GetResponse();
theResponseStream = theResponse.GetResponseStream();
theStreamReader = new StreamReader(theResponseStream);
theWholePage = theStreamReader.ReadToEnd();

Если я попадаю на страницу с ошибкой 503, строка:

theResponse = webRequestObj.GetResponse();

вызывает исключение WebException:

The remote server returned an error: (503) Server Unavailable.

Есть ли способ проверить, возвращает ли веб-сайт ошибку 503 вместо того, чтобы все обернуть в блок try / catch и ждать исключения?Я делаю много обновлений в секунду и хотел бы избежать попытки / ловить, если это возможно.

1 Ответ

0 голосов
/ 15 июля 2010

Стоимость попытки / уловки будет минимальной по сравнению со временем, которое требуется для подключения к сети. В самом деле, если вы беспокоитесь о производительности - не волнуйтесь:)

Теперь я с готовностью признаю, что на более философском уровне раздражает то, что вы не можете сделать умозрительный звонок - своего рода TryGetResponse - но я не знаю, как это сделать. Вполне возможно, что один из асинхронных подходов сработает, но это может привести к значительному изменению кода.

Кстати, убедитесь, что вы распоряжаетесь ответом и потоком - если вы не распоряжаетесь ответом, вы будете ограничены в количестве подключений к одному и тому же серверу.

...