C # se débarrasser de l’en-tête de connexion dans WebClient

J’utilise le C # en utilisant WebClient ().

J’essayais quels en-têtes sont envoyés et j’ai remarqué que l’en-tête suivant est automatiquement ajouté.

Connection : Keep-Alive 

Y at-il un moyen de supprimer cela?

J’avais rencontré le même problème ce matin. Suivant les indications de Skeet, il est possible de le faire en transmettant HttpWebRequest à WebClient en l’héritant:

 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; } } 

Les en-têtes envoyés incluent la Connection : close

Utilisez HttpWebRequest au lieu de WebClient (c’est un peu moins pratique, mais pas beaucoup) et définissez la propriété KeepAlive sur false .

Je n’ai pas testé cela – il est possible que cela modifie simplement la valeur de l’en-tête Connection au lieu de le supprimer – mais cela vaut la peine d’essayer. Les documents de la propriété Connection suggèrent au moins qu’elle ajoute uniquement Keep-Alive.