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

Hou elke legacy HttpWebRequest-respons in 'n omvang wat dit heeltemal verbruik en vrylaat. Hier is destination die toepassing se skryfbare uitvoerstroom; die using-blok laat die WebResponse vry selfs as die kopiëring misluk, sonder om eienaarskap van daardie uitvoer oor te neem.

Een proxyversoek wat slaag en latere versoeke wat wag, kan daarop dui dat onvoltooide responses verbindingshulpbronne beset. Om bloot 'n WebResponse te ontvang, voltooi nie die liggaam daarvan nie. Die versoektydsperking beperk 'n wagtyd, nie die leeftyd van elke respons wat reeds verkry is nie.

Pas dieselfde eienaarskap op foute toe. 'n WebException kan 'n respons bevat wat jou kode ondersoek; sluit dit ná ondersoek. 'n Vervoerfout kan glad geen respons hê nie.

Vrystelling gee die respons se hulpbronne vry, maar belowe nie in elke geval herverdedigbare verbindings nie. Protokol, bediener en liggaamsverbruik bly steeds belangrik.

Dit raak die instandhouding van die legacy WebRequest-stapel. Volg die respons/stroom-eienaarskap van die werklike kliënt in nuwer kode; vir HttpClient, hou responses binne hul vrystellingsomvang, en identifiseer hierdie opruimingsfout afsonderlik van proxy-verifikasie of roeteseleksie.

Verwante artikels