የHttpWebRequest ምላሾችን በፕሮክሲ ጥያቄዎች መካከል አስወግድ
ለአሮጌው HttpWebRequest ምላሾች ግልጽ የሆነ የሕይወት ዘመን ስጥ፣ ደጋግመው የሚደረጉ የፕሮክሲ ጥያቄዎች የግንኙነት ሀብቶችን ያለ ገደብ እንዳይይዙ።
using (WebResponse response = request.GetResponse())
{
response.GetResponseStream().CopyTo(destination);
}
እያንዳንዱን የአሮጌው HttpWebRequest ምላሽ ፍጆታውን በሚጨርስና በሚለቀቅ ክልል ውስጥ አቆይ። እዚህ destination የመተግበሪያው ሊጻፍ የሚችል የውጤት ፍሰት ነው፤ የusing ብሎኩ ቅዳሴው ቢወድቅም የWebResponse ን ይለቃል፣ የዚያን ውጤት ባለቤትነት ሳይወስድ።
አንድ የፕሮክሲ ጥያቄ መሳካቱና በኋላ ያሉት መጠበቃቸው ያልተጠናቀቁ ምላሾች የግንኙነት ሀብቶችን እየያዙ መሆኑን ሊያመለክት ይችላል። WebResponse መቀበል ብቻውን አካሉን አያጠናቅቅም። የጥያቄው ጊዜ ገደብ መጠበቅን ይገድባል፣ አስቀድሞ የተገኘውን እያንዳንዱን ምላሽ የሕይወት ዘመን አይደለም።
ተመሳሳዩን ባለቤትነት በስህተቶች ላይም ተግብር። አንድ WebException ኮድህ የሚመረምረውን ምላሽ ሊይዝ ይችላል፤ ከመርመራ በኋላ ዘጋው። የመጓጓዣ ውድቀት ምንም ምላሽ ላይኖረው ይችላል።
መልቀቅ የምላሹን ሀብቶች ይለቃል፣ ነገር ግን በሁሉም ሁኔታ እንደገና የሚጠቀሙ ግንኙነቶችን አያረጋግጥም። ፕሮቶኮል፣ አገልጋይና የአካል ፍጆታ አሁንም አስፈላጊ ናቸው።
ይህ የአሮጌውን WebRequest ቁልል ጥገና ይመለከታል። በአዲሱ ኮድ ውስጥ የትክክለኛውን ደንበኛ የምላሽ/ፍሰት ባለቤትነት ተከተል፤ ለHttpClient፣ ምላሾችን በመልቀቂያ ክልላቸው ውስጥ አቆይ፣ እና ይህን የማጽዳት ውድቀት ከፕሮክሲ ማረጋገጫ ወይም ከመንገድ ምርጫ ለይተው ለይ።