.NET

HttpClient & Networking

HttpClient, HttpClientFactory, request/response, obsługa błędów, retry policies, wzorce async

20 pytań z rozmów·
Mid-Level
1

Dlaczego warto używać IHttpClientFactory zamiast bezpośrednio tworzyć instancję HttpClient?

Odpowiedź

IHttpClientFactory automatycznie zarządza cyklem życia instancji HttpClient i zapobiega wyczerpaniu socketów (socket exhaustion). Bezpośrednie tworzenie instancji HttpClient w bloku using może powodować problemy z połączeniami w stanie TIME_WAIT, które pozostają otwarte nawet po disposal. Użycie IHttpClientFactory umożliwia również konfigurowanie polityk odporności z Polly oraz efektywne zarządzanie pulą połączeń.

2

Jaka jest główna różnica między Named Client a Typed Client?

Odpowiedź

Typed Client enkapsuluje logikę wywołań HTTP w dedykowanej klasie z wstrzykiwaniem zależności, podczas gdy Named Client jest pobierany za pomocą IHttpClientFactory.CreateClient(name). Typed Client zapewnia lepszy podział odpowiedzialności i ułatwia testy jednostkowe poprzez enkapsulację konfiguracji i logiki biznesowej. Named Client jest przydatny w prostych przypadkach, gdy potrzeba wielu różnych konfiguracji bez złożonej logiki biznesowej.

3

Jak skonfigurować globalny timeout dla wszystkich instancji HttpClient w aplikacji?

Odpowiedź

Konfigurowanie timeoutu za pomocą ConfigurePrimaryHttpMessageHandler pozwala zdefiniować timeout na poziomie handlera, który będzie obowiązywał dla wszystkich klientów tworzonych przez factory. Takie podejście centralizuje konfigurację i unika powtarzania kodu. Można też konfigurować timeout indywidualnie na każdym HttpClient, ale staje się to trudne w utrzymaniu w dużej aplikacji z wieloma skonfigurowanymi klientami.

4

Która metoda pozwala odczytać treść odpowiedzi HTTP jako ciąg znaków?

5

Jaka jest rola DelegatingHandler w pipeline HttpClient?

+17 pytań z rozmów

Opanuj .NET na następną rozmowę

Uzyskaj dostęp do wszystkich pytań, flashcards, testów technicznych, ćwiczeń code review i symulatorów rozmów.

Zacznij za darmo