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

Држите сваки стари HttpWebRequest одговор у опсегу који довршава његово трошење и ослобађа га. Овде је destination излазни ток апликације за писање; using блок ослобађа WebResponse чак и ако копирање не успе, без преузимања власништва над тим излазом.

Успех једног proxy захтева и чекање каснијих може значити недовршене одговоре који заузимају ресурсе везе. Само примање WebResponse не довршава његово тело. Временско ограничење захтева ограничава чекање, не животни век сваког већ добијеног одговора.

Примените исто власништво на грешке. WebException може носити одговор који ваш код прегледа; затворите га након прегледа. Транспортни квар може уопште не имати одговор.

Ослобађање враћа ресурсе одговора, али не обећава поново употребљиве везе у сваком случају. Протокол, сервер и трошење тела и даље су важни.

То се тиче одржавања старог WebRequest стека. У новијем коду следите власништво одговора/тока стварног клијента; за HttpClient држите одговоре у њиховом опсегу ослобађања и разликујте овај квар чишћења од proxy аутентификације или избора руте.

Повезани чланци