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

Houd elk verouderd HttpWebRequest-antwoord in een bereik dat het verbruik afrondt en het vrijgeeft. Hier is destination de schrijfbare uitvoerstroom van de toepassing; het using-blok geeft de WebResponse vrij, zelfs als het kopiëren mislukt, zonder eigenaarschap van die uitvoer over te nemen.

Dat één proxyverzoek slaagt en latere wachten, kan wijzen op onvoltooide antwoorden die verbindingsbronnen bezetten. Alleen een WebResponse ontvangen maakt de body niet af. De time-out van het verzoek beperkt een wachttijd, niet de levensduur van elk al verkregen antwoord.

Pas hetzelfde eigenaarschap toe op fouten. Een WebException kan een antwoord dragen dat uw code onderzoekt; sluit het na onderzoek. Een transportfout kan helemaal geen antwoord hebben.

Vrijgave geeft de bronnen van het antwoord terug, maar belooft niet in elk geval herbruikbare verbindingen. Protocol, server en bodyverbruik blijven belangrijk.

Dit betreft het onderhoud van de verouderde WebRequest-stack. Volg in nieuwere code het antwoord-/stroom-eigenaarschap van de werkelijke client; houd voor HttpClient antwoorden binnen hun vrijgavebereik, en onderscheid deze opschoonfout van proxyverificatie of routekeuze.

Gerelateerde artikelen