Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
⊗csSpHtErr 468 of 509 menu
◀ ▶

Ошибка HTTP в C#

Сам по себе код 404 или 500 не бросает исключение. HttpClient всё равно возвращает ответ, и в теле может быть HTML или JSON с описанием ошибки.

Явная проверка IsSuccessStatusCode для несуществующей страницы на example.com обычно печатает 404 без бросания исключения:

using HttpClient client = new(); using HttpResponseMessage response = await client.GetAsync("https://example.com/not-found-page"); if (!response.IsSuccessStatusCode) { Console.WriteLine((int)response.StatusCode); }

Вызов EnsureSuccessStatusCode нужен, когда ошибочный ответ обрабатывают через catch. Адрес "httpbin.org/status/500" стабильно даёт 500. Тело можно прочитать, но считать его успешным ответом сервиса не стоит. В обработчике печатают код:

using HttpClient client = new(); using HttpResponseMessage response = await client.GetAsync("https://httpbin.org/status/500"); try { response.EnsureSuccessStatusCode(); } catch (HttpRequestException) { Console.WriteLine((int)response.StatusCode); }

Запросите "httpbin.org/status/418", не вызывая EnsureSuccessStatusCode, и выведите код и IsSuccessStatusCode через пробел.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить