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

Tenu ĉiun malnovan respondon de HttpWebRequest en amplekso, kiu finos ĝian konsumadon kaj liberigos ĝin. Ĉi tie destination estas la skribebla eliga fluo de la aplikaĵo; la bloko using liberigas la WebResponse eĉ se la kopiado malsukcesas, sen transpreni posedon de tiu eligo.

Tio, ke unu proksa peto sukcesas kaj postaj atendas, povas indiki nefinitajn respondojn okupantajn konektajn rimedojn. Nur ricevi WebResponse ne finas ĝian korpon. La tempolimo de la peto limigas atendojn, ne la vivdaŭron de ĉiu jam akirita respondo.

Apliku la saman posedon al eraroj. WebException povas porti respondon, kiun via kodo ekzamenas; fermu ĝin post ekzameno. Transporta fiasko povas tute ne havi respondon.

Malŝargo redonas la rimedojn de la respondo sed ne promesas reuzeblajn konektojn en ĉiu kazo. Protokolo, servilo kaj korpa konsumado ankoraŭ gravas.

Ĉi tio rilatas al prizorgado de la malnova stako WebRequest. En pli nova kodo sekvu la posedon de respondo/fluo de la reala kliento; por HttpClient, tenu respondojn en ilia malŝarga amplekso, kaj distingigu ĉi tiun purigan fiaskon de proksa aŭtentikigo aŭ voj-elekto.

Rilataj artikoloj