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

દરેક જૂની HttpWebRequest પ્રતિસાદને એવા અવકાશમાં રાખો જે તેનો વપરાશ પૂરો કરે અને તેને મુક્ત કરે. અહીં destination એ એપ્લિકેશનનો લખી શકાય તેવો આઉટપુટ પ્રવાહ છે; કૉપી નિષ્ફળ થાય તો પણ using બ્લોક WebResponse મુક્ત કરે છે, તે આઉટપુટની માલિકી લીધા વિના.

એક પ્રોક્સી વિનંતી સફળ થવી અને પછીની રાહ જોવી એ અધૂરા પ્રતિસાદો કનેક્શન સંસાધનો રોકતા હોવાનો સંકેત હોઈ શકે. ફક્ત WebResponse મેળવવાથી તેનું બોડી પૂરું થતું નથી. વિનંતીની સમયમર્યાદા રાહને મર્યાદિત કરે છે, પહેલેથી મળેલા દરેક પ્રતિસાદના આયુષ્યને નહીં.

ભૂલો પર પણ એ જ માલિકી લાગુ કરો. WebException એવો પ્રતિસાદ ધરાવી શકે છે જે તમારો કોડ તપાસે છે; તપાસ પછી તેને બંધ કરો. પરિવહન નિષ્ફળતામાં કોઈ પ્રતિસાદ જ ન હોઈ શકે.

નિકાલ પ્રતિસાદના સંસાધનો પરત આપે છે પણ દરેક કિસ્સામાં ફરી વાપરી શકાય તેવા કનેક્શનની ખાતરી આપતું નથી. પ્રોટોકોલ, સર્વર અને બોડીનો વપરાશ હજી પણ મહત્વપૂર્ણ છે.

આ જૂના WebRequest સ્ટેકની જાળવણીને લગતું છે. નવા કોડમાં વાસ્તવિક ક્લાયન્ટની પ્રતિસાદ/પ્રવાહ માલિકી અનુસરો; HttpClient માટે, પ્રતિસાદોને તેમના નિકાલ અવકાશમાં રાખો, અને આ સફાઈ નિષ્ફળતાને પ્રોક્સી પ્રમાણીકરણ અથવા માર્ગ પસંદગીથી અલગ ઓળખો.

સંબંધિત લેખો