Moet httpclient tijdelijk of singleton zijn?

Inhoudsopgave:

Moet httpclient tijdelijk of singleton zijn?
Moet httpclient tijdelijk of singleton zijn?

Video: Moet httpclient tijdelijk of singleton zijn?

Video: Moet httpclient tijdelijk of singleton zijn?
Video: The RIGHT Way To Use HttpClient In .NET 2024, November
Anonim

De HttpClient-klasse is meer geschikt als singleton voor een enkel app-domein. Dit betekent dat de singleton moet worden gedeeld over meerdere containerklassen. Met deze tactiek krijg je wel een singleton, maar dit maakt het moeilijk om te delen. De klasse HttpClient implementeert de IDisposable-interface.

Moeten we een nieuwe enkele instantie van HttpClient maken voor alle verzoeken?

Hoewel het de IDisposable-interface implementeert, is het eigenlijk een gedeeld object. Dit betekent dat het onder de dekens reentrant en draadveilig is. In plaats van voor elke uitvoering een nieuwe instantie van HttpClient te maken, moet u een enkele instantie van HttpClient delen voor de gehele levensduur van de toepassing.

Moet je HttpClient hergebruiken?

HttpClient is bedoeld om eenmalig te worden aangemaakt en opnieuw te worden gebruikt gedurende de levensduur van een applicatie. Het instantiëren van een HttpClient-klasse voor elk verzoek zal het aantal beschikbare sockets onder zware belasting uitputten. Dit zal resulteren in SocketException-fouten.

Is HttpClient onbeheerd?

Hoewel HttpClient indirect de IDisposable-interface implementeert, het standaardgebruik van HttpClient is niet om het na elk verzoek weg te gooien. Het HttpClient-object is bedoeld om te leven zolang uw toepassing HTTP-verzoeken moet doen.

Is HttpClient thread-safe?

HttpClient is volledig thread-safe wanneer gebruikt met een thread-safe verbindingsmanager zoals MultiThreadedHttpConnectionManager. … Tegelijkertijd moeten de HttpClient-instantie en de verbindingsbeheerder worden gedeeld door alle threads voor maximale efficiëntie.

Aanbevolen: