Lironi përgjigjet e HttpWebRequest midis kërkesave proxy
Jepini përgjigjeve të vjetra të HttpWebRequest një jetëgjatësi të qartë, që kërkesat e përsëritura proxy të mos mbajnë burimet e lidhjes pafundësisht.
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.