ప్రాక్సీ అభ్యర్థనల మధ్య HttpWebRequest ప్రతిస్పందనలను తొలగించండి
పాత HttpWebRequest ప్రతిస్పందనలకు స్పష్టమైన జీవితకాలం ఇవ్వండి, పునరావృత ప్రాక్సీ అభ్యర్థనలు కనెక్షన్ వనరులను నిరవధికంగా పట్టుకోకుండా.
using (WebResponse response = request.GetResponse())
{
response.GetResponseStream().CopyTo(destination);
}
ప్రతి పాత HttpWebRequest ప్రతిస్పందనను దాని వినియోగం పూర్తి చేసి విడుదల చేసే పరిధిలో ఉంచండి. ఇక్కడ destination అనేది అప్లికేషన్ యొక్క రాయగల అవుట్పుట్ స్ట్రీమ్; కాపీ విఫలమైనా using బ్లాక్ WebResponse ను విడుదల చేస్తుంది, ఆ అవుట్పుట్ యాజమాన్యం తీసుకోకుండా.
ఒక ప్రాక్సీ అభ్యర్థన విజయవంతం కావడం, తరువాతివి నిరీక్షించడం అనేది కనెక్షన్ వనరులను ఆక్రమించిన అసంపూర్ణ ప్రతిస్పందనలను సూచించవచ్చు. WebResponse ను స్వీకరించడం మాత్రమే దాని బాడీని పూర్తి చేయదు. అభ్యర్థన కాలపరిమితి నిరీక్షణను పరిమితం చేస్తుంది, ఇప్పటికే పొందిన ప్రతి ప్రతిస్పందన జీవితకాలాన్ని కాదు.
లోపాలకు కూడా అదే యాజమాన్యాన్ని వర్తింపజేయండి. మీ కోడ్ పరిశీలించే ప్రతిస్పందనను WebException కలిగి ఉండవచ్చు; పరిశీలన తర్వాత దాన్ని మూసివేయండి. రవాణా వైఫల్యంలో ప్రతిస్పందనే ఉండకపోవచ్చు.
తొలగింపు ప్రతిస్పందన వనరులను తిరిగి ఇస్తుంది కానీ ప్రతి సందర్భంలోనూ పునర్వినియోగ కనెక్షన్లను హామీ ఇవ్వదు. ప్రోటోకాల్, సర్వర్ మరియు బాడీ వినియోగం ఇప్పటికీ ముఖ్యం.
ఇది పాత WebRequest స్టాక్ నిర్వహణకు సంబంధించినది. కొత్త కోడ్లో వాస్తవ క్లయింట్ యొక్క ప్రతిస్పందన/స్ట్రీమ్ యాజమాన్యాన్ని అనుసరించండి; HttpClient కోసం, ప్రతిస్పందనలను వాటి తొలగింపు పరిధిలో ఉంచండి, మరియు ఈ శుభ్రపరిచే వైఫల్యాన్ని ప్రాక్సీ ప్రామాణీకరణ లేదా మార్గ ఎంపిక నుండి విడిగా గుర్తించండి.