
HttpClient & Networking
HttpClient, HttpClientFactory, request/response, obsługa błędów, retry policies, wzorce async
1Dlaczego warto używać IHttpClientFactory zamiast bezpośrednio tworzyć instancję HttpClient?
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ń.
2Jaka jest główna różnica między Named Client a Typed Client?
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.
3Jak skonfigurować globalny timeout dla wszystkich instancji HttpClient w aplikacji?
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.
Która metoda pozwala odczytać treść odpowiedzi HTTP jako ciąg znaków?
Jaka jest rola DelegatingHandler w pipeline HttpClient?
+17 pytań z rozmów
Inne tematy rekrutacyjne .NET
Podstawy C#
LINQ & Delegates
Podstawy języka C#
Podstawy ASP.NET Core
Cykl życia żądania w ASP.NET Core
Configuration & Settings
Cykl życia aplikacji
Dependency Injection
Entity Framework Core
Minimal APIs
Tworzenie Web API
Async w ASP.NET Core
Authentication & Authorization
Serializacja JSON
Entity Framework Core zaawansowany
Zaawansowane funkcje C#
Clean Architecture
Logging, Monitoring & Observability
Testy jednostkowe & xUnit
Testy integracyjne
Docker & Containerization
Zarządzanie pakietami NuGet
Memory Management & GC
Programowanie reaktywne
Async/await i wzorce
.NET Design Patterns
Optymalizacja wydajności
Bezpieczeństwo i Best Practices
SignalR i czas rzeczywisty
Architektura Mikroserwisó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