using (WebResponse response = request.GetResponse())
{
    response.GetResponseStream().CopyTo(destination);
}

Mbani çdo përgjigje të vjetër të HttpWebRequest brenda një fushëveprimi që përfundon konsumin dhe e liron atë. Këtu destination është rryma e daljes e shkrueshme e aplikacionit; blloku using e liron WebResponse edhe nëse kopjimi dështon, pa marrë pronësinë e asaj daljeje.

Suksesi i një kërkese proxy dhe pritja e atyre pasardhëse mund të tregojnë përgjigje të papërfunduara që zënë burimet e lidhjes. Marrja vetëm e WebResponse nuk e përfundon trupin e tij. Afati i kërkesës kufizon një pritje, jo jetëgjatësinë e çdo përgjigjeje të marrë tashmë.

Zbato të njëjtën pronësi edhe për gabimet. Një WebException mund të mbajë një përgjigje që kodi juaj e shqyrton; mbylleni pas shqyrtimit. Një dështim transporti mund të mos ketë fare përgjigje.

Lirimi kthen burimet e përgjigjes, por nuk premton lidhje të ripërdorshme në çdo rast. Protokolli, serveri dhe konsumi i trupit vazhdojnë të kenë rëndësi.

Kjo lidhet me mirëmbajtjen e stivës së vjetër WebRequest. Në kodin më të ri ndiqni pronësinë e përgjigjes/rrymës të klientit aktual; për HttpClient, mbani përgjigjet brenda fushës së lirimit të tyre, dhe dalloni këtë dështim pastrimi nga vërtetimi proxy ose zgjedhja e rrugës.

Artikuj të ngjashëm