Logo cs.boatexistence.com

Měl by být httpclient přechodný nebo jednoduchý?

Obsah:

Měl by být httpclient přechodný nebo jednoduchý?
Měl by být httpclient přechodný nebo jednoduchý?

Video: Měl by být httpclient přechodný nebo jednoduchý?

Video: Měl by být httpclient přechodný nebo jednoduchý?
Video: Stop using the HttpClient the wrong way in .NET 2024, Smět
Anonim

Třída HttpClient je vhodnější jako singleton pro doménu jedné aplikace. To znamená, že singleton by měl být sdílen mezi více třídami kontejnerů. S touto taktikou sice získáte singleton, ale to ztěžuje sdílení. Třída HttpClient implementuje rozhraní IDisposable.

Máme vytvořit novou jedinou instanci HttpClient pro všechny požadavky?

Přestože implementuje rozhraní IDisposable, ve skutečnosti jde o sdílený objekt. To znamená, že pod kryty je propustný a bezpečný pro vlákna. Místo vytváření nové instance HttpClient pro každé spuštění byste měli sdílet jednu instanci HttpClient po celou dobu životnosti aplikace.

Měli byste znovu použít

HttpClient je určen k tomu, aby byl vytvořen jednou a znovu použit po celou dobu životnosti aplikace. Vytvořením třídy HttpClient pro každý požadavek se vyčerpá počet dostupných soketů při velkém zatížení. To bude mít za následek chyby SocketException.

Je HttpClient nespravovaný?

Přestože HttpClient nepřímo implementuje rozhraní IDisposable, standardním použitím HttpClient není jeho likvidace po každém požadavku. Objekt HttpClient má fungovat tak dlouho, dokud vaše aplikace potřebuje vytvářet požadavky

Je HttpClient bezpečný pro vlákna?

HttpClient je plně bezpečný pro vlákna, když se používá se správcem připojení bezpečným pro vlákna, jako je MultiThreadedHttpConnectionManager. … Zároveň by instance HttpClient a správce připojení měly být sdíleny mezi všemi vlákny pro maximální efektivitu.

Doporučuje: