Dapat bang transient o singleton ang httpclient?

Talaan ng mga Nilalaman:

Dapat bang transient o singleton ang httpclient?
Dapat bang transient o singleton ang httpclient?
Anonim

Ang klase ng HttpClient ay mas angkop bilang singleton para sa isang domain ng app. Nangangahulugan ito na dapat ibahagi ang singleton sa maraming klase ng container. Sa taktikang ito, nakakakuha ka ng singleton, ngunit ito ay nagpapahirap sa pagbabahagi. Ang klase ng HttpClient ay nagpapatupad ng IDisposable interface.

Dapat ba tayong gumawa ng bagong solong instance ng HttpClient para sa lahat ng kahilingan?

Bagama't ipinapatupad nito ang IDisposable interface, isa talaga itong shared object. Nangangahulugan ito na sa ilalim ng mga pabalat ito ay reentrant at thread safe. Sa halip na gumawa ng bagong instance ng HttpClient para sa bawat execution ay dapat kang magbahagi ng isang instance ng HttpClient para sa buong buhay ng application.

Dapat mo bang gamitin muli ang

Ang

HttpClient ay na nilayon na ma-instantiate isang beses at muling magamit sa buong buhay ng isang application. Ang paglalagay ng isang klase ng HttpClient para sa bawat kahilingan ay mauubos ang bilang ng mga socket na magagamit sa ilalim ng mabibigat na pagkarga. Magreresulta ito sa mga error sa SocketException.

Hindi ba pinamamahalaan ang

Bagama't hindi direktang ipinapatupad ng HttpClient ang IDisposable interface, ang karaniwang paggamit ng HttpClient ay hindi itatapon ito pagkatapos ng bawat kahilingan. Ang object ng HttpClient ay inilaan upang mabuhay hangga't kailangan ng iyong application na gumawa ng mga kahilingan sa

Ligtas ba ang thread ng

Ang HttpClient ay ganap na thread-safe kapag ginamit sa isang thread-safe na connection manager gaya ng MultiThreadedHttpConnectionManager. … Kasabay nito ang HttpClient instance at connection manager ay dapat ibahagi sa lahat ng thread para sa maximum na kahusayan.

Inirerekumendang: