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

Долгоживущий HttpClient в C#

Создавать HttpClient на каждый вызов дорого: теряется пул TCP-соединений и кэш DNS. Новый клиент заново открывает соединения и заново узнаёт адрес сервера. Один экземпляр на процесс - обычная схема для консоли и фоновой службы.

Заголовки по умолчанию, например User-Agent, задают один раз. Два GET подряд через тот же клиент оба завершаются успешно:

using HttpClient client = new(); client.DefaultRequestHeaders.UserAgent.ParseAdd("DemoAgent/1.0"); using HttpResponseMessage r1 = await client.GetAsync("https://example.com/"); using HttpResponseMessage r2 = await client.GetAsync("https://example.com/"); Console.WriteLine(r1.IsSuccessStatusCode); Console.WriteLine(r2.IsSuccessStatusCode);

Базовый адрес необязателен. Без свойства BaseAddress запросы идут на полный URI. После работы клиент закрывают через using или Dispose. Предел Timeout и заголовки лучше задать до серии вызовов. Позже их менять можно, но так проще не перепутать настройки.

Создайте HttpClient, задайте заголовок "Accept: text/plain" и выполните один GET; выведите IsSuccessStatusCode.

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