Ar httpclient turėtų būti trumpalaikis ar vienkartinis?

Turinys:

Ar httpclient turėtų būti trumpalaikis ar vienkartinis?
Ar httpclient turėtų būti trumpalaikis ar vienkartinis?

Video: Ar httpclient turėtų būti trumpalaikis ar vienkartinis?

Video: Ar httpclient turėtų būti trumpalaikis ar vienkartinis?
Video: Stop using the HttpClient the wrong way in .NET 2024, Lapkritis
Anonim

HttpClient klasė yra labiau tinkamavienos programos domenui. Tai reiškia, kad vienetas turėtų būti bendrinamas keliose konteinerių klasėse. Taikydami šią taktiką jūs gaunate vieną, tačiau tai apsunkina dalijimąsi. „HttpClient“klasė įgyvendina IDisposable sąsają.

Ar turėtume sukurti naują vieną HttpClient egzempliorių visoms užklausoms?

Nors ji įgyvendina IDisposable sąsają, iš tikrųjų yra bendras objektas. Tai reiškia, kad po užvalkalais jis yra patvarus ir saugus siūlams. Užuot sukūrę naują HttpClient egzempliorių kiekvienai vykdymui, turėtumėte bendrinti vieną HttpClient egzempliorių per visą programos veikimo laiką.

Ar turėtumėte pakartotinai naudoti „HttpClient“?

HttpClient skirta vieną kartą sukurti ir pakartotinai naudoti visą programos veikimo laiką. Kiekvienai užklausai sukūrus HttpClient klasę, bus išnaudotas galimų lizdų skaičius esant didelėms apkrovoms. Tai sukels SocketException klaidas.

Ar HttpClient nevaldomas?

Nors HttpClient netiesiogiai įdiegia IDdisposable sąsają, įprastas HttpClient naudojimas nėra jo išmetimas po kiekvieno prašymo. „HttpClient“objektas turi veikti tol, kol jūsų programai reikia pateikti HTTP užklausas.

Ar „HttpClient“gijai yra saugi?

HttpClient yra visiškai saugus nuo gijų, kai naudojamas su gijų saugaus ryšio tvarkykle, pvz., MultiThreadedHttpConnectionManager. … Tuo pačiu metu HttpClient egzempliorius ir ryšio tvarkyklė turėtų būti bendrinami tarp visų gijų, kad būtų maksimalus efektyvumas.

Rekomenduojamas: