Последние записи
- Посимвольное чтение из файла. Посимвольная запись в файл
- Разделить строку с сохранением разделителя
- Свой прогресс в консоли при выполнении команды ffmpeg
- HttpWebRequest выдаёт много ошибок при неудачном соединении
- Как обратиться к последней ячейке не связанного диапазона
- Управление громкостю MediaPlayer
- Как использовать java для бэкенда веб-сайтов и веб-скриптов?
- Некорректная работа гиперссылок Microsoft Word 2010
- Функция рисования для печати на принтере ScanLine
- Функция CharInSet (множества) не работает для русских букв
Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk
Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - ttps://clck.ru/fCrQw
20th
Июл
HttpWebRequest выдаёт много ошибок при неудачном соединении
Posted by obzor under .NET, C#
try
{
const string URL = "https://www.youtube.com/watch?v=fy0HRViXZnE";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL);
request.Method = "GET";
request.Timeout = 5000;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
int code = (int)response.StatusCode;
Console.WriteLine($"OK: {code}");
}
catch (Exception ex)
{
Console.WriteLine(ex.HResult);
}
Console.ReadLine();
Если не удалось установить соединение, в дебаг-консоль высыпается куча ошибок:
Exception thrown: 'System.Net.Sockets.SocketException' in System.dll
Exception thrown: 'System.IO.IOException' in System.dll
Exception thrown: 'System.IO.IOException' in System.dll
Exception thrown: 'System.IO.IOException' in System.dll
Exception thrown: 'System.IO.IOException' in System.dll
Exception thrown: 'System.IO.IOException' in System.dll
Exception thrown: 'System.ObjectDisposedException' in System.dll
Exception thrown: 'System.ObjectDisposedException' in System.dll
Exception thrown: 'System.ObjectDisposedException' in System.dll
Exception thrown: 'System.Net.WebException' in System.dll
Exception thrown: 'System.Net.WebException' in System.dll
Раньше такого не замечал. Это вообще нормально? Почему так много? Это дезориентирует. Откуда там ObjectDisposedException, да аж 3 раза?
Да, я знаю, что HttpWebRequest устарел (deprecated). Но сейчас не об этом.
Если вам так важен этот устарелый метод попробуйте сделать тогда сам код «чище» при использовании HttpWebRequest
try
{
const string URL = "https://www.youtube.com/watch?v=fy0HRViXZnE";
var request = (HttpWebRequest)WebRequest.Create(URL);
request.Method = "GET";
request.Timeout = 5000;
request.ReadWriteTimeout = 5000; // Важно: задаем оба таймаута
using (var response = (HttpWebResponse)request.GetResponse())
{
Console.WriteLine($"OK: {(int)response.StatusCode}");
}
}
catch (WebException ex)
{
// WebException — это специализированное исключение для сетевых запросов
if (ex.Response is HttpWebResponse response)
{
Console.WriteLine($"Error Status: {(int)response.StatusCode}");
}
else
{
Console.WriteLine($"Network error or timeout: {ex.Message}");
}
}
catch (Exception ex)
{
Console.WriteLine($"General error: {ex.Message}");
}
Нужно настроить отладчик Visual Studio:
1. Нажмите Ctrl + Alt + E (откроется окно Exception Settings).
2. В поиске введите System.Net.WebException или System.IO.IOException.
3. Снимите галочку (чекбокс) напротив них.
Теперь Visual Studio не будет останавливать выполнение и «выплевывать» уведомления в консоль для этих исключений. Она будет реагировать только на те ошибки, которые действительно не были перехвачены вашим catch. Для HttpWebRequest это «норма». Это старый класс, написанный еще во времена .NET Framework 1.1/2.0, и он не был рассчитан на современную модель обработки исключений.
Случайные статьи
Купить рекламу на сайте за 1000 руб
пишите сюда - alarforum@yandex.ru
Да и по любым другим вопросам пишите на почту

пеллетные котлы

Пеллетный котел Emtas
Наши форумы по программированию:
- Форум Web программирование (веб)
- Delphi форумы
- Форумы C (Си)
- Форум .NET Frameworks (точка нет фреймворки)
- Форум Java (джава)
- Форум низкоуровневое программирование
- Форум VBA (вба)
- Форум OpenGL
- Форум DirectX
- Форум CAD проектирование
- Форум по операционным системам
- Форум Software (Софт)
- Форум Hardware (Компьютерное железо)


