Après un appel à initial HttpWebResponse.GetResponseStream() et en lisant le flux, ce flux est terminé et ne peut pas être réutilisé.Existe-t-il un moyen d'examiner WebResponse sans affecter le flux de réponses sous-jacent dans .NET?
J'ai une situation où j'ai besoin d'examiner le contenu de la réponse et si c'est d'une certaine donnée, obtenir une autre page, puis passer la nouvelle réponse sur la ligne. Sinon, transmettez la réponse d'origine telle quelle. Le seul problème est qu'après avoir examiné la réponse pour vérifier ces "données spéciales", cette réponse n'est pas bonne pour le code en aval. La seule façon, je pense, de rendre cela transparent au code en aval, est de créer une classe dérivée de HttpWebResponse, et de mettre en cache les données diffusées, et de passer ce flux caché sur la ligne au lieu de la courant. Je ne suis pas sûr que ce soit faisable puisque je ne l'ai pas examiné plus avant.
Existe-t-il d'autres moyens de gérer un scénario comme celui-ci?
+1 pour avoir recommandé WebClient. Trop de gens utilisent WebRequest & WebResponse parce qu'ils ne connaissent pas WebClient, ce qui permet à la fois d'obtenir et de publier des requêtes dans une seule instruction. – Chris
Je suis d'accord que les gens devraient utiliser WebClient plus. Mais dans mon cas, je ne peux pas utiliser WebClient car j'ai besoin de créer la requête moi-même. WebClient est bon pour les choses simples mais pas pour les demandes complexes. Et la demande étant complexe, il n'est pas seulement fastidieux de gérer cela du côté client, c'est-à-dire de recréer une autre requête. Ce que je veux, c'est être le plus transparent possible pour le code client. –
Plus cette méthode ne vous obligerait pas à faire deux appels différents? Il pourrait être préférable de retourner la chaîne dans un flux après l'avoir vérifié. – BigOmega