2009-05-22 5 views

Répondre

4

Utilisation HttpWebRequest au lieu de WebClient (il est légèrement moins pratique, mais pas par beaucoup) et définissez la propriété KeepAlive-false.

Je n'ai pas testé cela - c'est possible que cela va simplement changer la valeur de l'en-tête de connexion au lieu de le supprimer - mais ça vaut le coup d'essayer. Les documents pour la propriété Connection au moins suggèrent qu'il ajoute seulement Keep-Alive.

+5

Une chose à noter est que faire cela ne veut pas * supprimer * la connexion en-tête, bien qu'il le change de "Connexion: Keep-Alive" à "Connection: Close". –

15

J'avais rencontré le même problème ce matin. Suite à l'indice de Skeet, il peut être réalisé en faisant passer HttpWebRequest-WebClient en héritant il:

class MyWebClient : WebClient 
{ 
    protected override WebRequest GetWebRequest(Uri address) 
    { 
     WebRequest request = base.GetWebRequest(address); 
     if (request is HttpWebRequest) 
     { 
      (request as HttpWebRequest).KeepAlive = false; 
     } 
     return request; 
    } 
} 

maintenant en-têtes envoyés comprendront Connection : close

Questions connexes