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

Držite svaki stari HttpWebRequest odgovor u opsegu koji dovršava njegovo trošenje i oslobađa ga. Ovde je destination izlazni tok aplikacije za pisanje; using blok oslobađa WebResponse čak i ako kopiranje ne uspe, bez preuzimanja vlasništva nad tim izlazom.

Uspeh jednog proxy zahteva i čekanje kasnijih može značiti nedovršene odgovore koji zauzimaju resurse veze. Samo primanje WebResponse ne dovršava njegovo telo. Vremensko ograničenje zahteva ograničava čekanje, ne životni vek svakog već dobijenog odgovora.

Primenite isto vlasništvo na greške. WebException može nositi odgovor koji vaš kod pregleda; zatvorite ga nakon pregleda. Transportni kvar može uopšte ne imati odgovor.

Oslobađanje vraća resurse odgovora, ali ne obećava ponovo upotrebljive veze u svakom slučaju. Protokol, server i trošenje tela i dalje su važni.

To se tiče održavanja starog WebRequest steka. U novijem kodu sledite vlasništvo odgovora/toka stvarnog klijenta; za HttpClient držite odgovore u njihovom opsegu oslobađanja i razlikujte ovaj kvar čišćenja od proxy autentifikacije ili odabira rute.

Povezani članci