HttpWebRequest, problèmes connus avec l'annulation de demandes?
-
06-07-2019 - |
Question
Existe-t-il des problèmes liés à l'annulation des requêtes HTTP HttpWebRequest? Nous constatons que lorsque nous annulons 4 à 5 demandes, la demande suivante est suspendue indéfiniment.
S'il n'y a pas de problèmes connus avec cela, alors je vais probablement faire quelque chose de mal ... Où est un bon exemple de ressource qui montre comment cela fonctionne (une solution complète, pas quelques extraits de code)?
S'il y a des problèmes connus, que puis-je faire pour les résoudre, afin d'annuler efficacement autant de demandes que nécessaire?
La solution
Après avoir annulé la demande, veillez à fermer le flux de réponses, sinon vous aurez des fuites.
J'utilise habituellement " using " lorsque vous obtenez la réponse de la requête Web pour vous assurer que la réponse est fermée:
WebRequest request = WebRequest.Create("http://google.com");
using (WebResponse response = request.GetResponse())
{
//do my job
}
Ainsi, même si vous annulez la demande ou si une exception est levée lors de la lecture de la réponse, le flux de réponse et son flux seront fermés.