TGViewer
C# (C Sharp) programming C# (C Sharp) programming @csharp_ci · 18.1K subscribers
Post #1910 952
🌐 Новый `HttpClient` на каждый запрос? Под нагрузкой это может закончиться исчерпанием портов.

IHttpClientFactory создаёт новые экземпляры клиента, но переиспользует обработчики `HttpMessageHandler` и их пулы соединений. Поэтому освобождение клиента, полученного от фабрики, не уничтожает пул после каждого запроса.

Три способа использования:

• Обычный клиент: CreateClient() для простых сценариев. Общие настройки тоже можно задать при регистрации.
• Именованный: CreateClient("github") возвращает клиент с настройками конкретного API.
• Типизированный: GitHubClient получает настроенный HttpClient через DI и скрывает детали HTTP за методами сервиса.

Например, именованный клиент:


services.AddHttpClient("github", client =>
{
client.BaseAddress = new Uri("https://api.github.com/");
client.DefaultRequestHeaders.UserAgent.ParseAdd("MyApp/1.0");
});

// При использовании:
using var client = factory.CreateClient("github");


Нюанс: типизированный клиент не стоит надолго удерживать в singleton без настройки обновления соединений.

Фабрика также не единственный правильный вариант: Microsoft рекомендует и долгоживущий HttpClient с настроенным PooledConnectionLifetime. Главное: управлять временем жизни соединений.
More from @csharp_ci
  1. Oct 16, 2026🛠 У .NET появился свой аналог rustup и nvm Microsoft представила dotnetup: менеджер для у…
  2. Oct 16, 2026Запрос проходит через несколько сервисов, обращается к базе данных и внешним API. Пользова…
  3. Oct 16, 2026Post #1907
  4. Oct 15, 2026Что на самом деле происходит с вашим async-методом: компилятор C# переписывает его в конеч…
  5. Oct 14, 2026Helm-чарты прямо из C#, без запуска `helm` 🛠 HelmSharp позволяет рендерить шаблоны и упра…
  6. Oct 14, 2026Альфа-Банк ищет скиллового коллегу QA Fullstack на C# Предлагаем полную удалёнку или гибри…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →