Maison > développement back-end > C++ > Comment puis-je lire et rembobiner efficacement le Response.Body d'ASP.NET Core ?

Comment puis-je lire et rembobiner efficacement le Response.Body d'ASP.NET Core ?

Barbara Streisand
Libérer: 2025-01-08 16:36:46
original
826 Les gens l'ont consulté

How Can I Efficiently Read and Rewind ASP.NET Core's Response.Body?

Accès et rembobinage d'ASP.NET Core Response.Body

Accéder directement à Response.Body d'ASP.NET Core présente un défi en raison de sa nature en écriture seule. Cet article explore des méthodes efficaces pour lire et rembobiner le contenu de la réponse, en abordant les limites des approches naïves.

Méthodes inefficaces :

Une solution courante, mais inefficace, consiste à remplacer Response.Body par un MemoryStream, à lire le contenu, puis à restaurer le flux d'origine. Cette méthode introduit des problèmes inutiles de surcharge et de performances.

La limitation du rembobinage :

Contrairement à Request.Body, Response.Body ne prend pas automatiquement en charge le rembobinage. Si vous tentez de le lire plusieurs fois, vous obtiendrez un flux vide lors des lectures suivantes.

La solution de flux tamponné :

La solution optimale exploite les flux mis en mémoire tampon. Un middleware, tel que ResponseBodyRewindMiddleware, intercepte le flux de réponse. Il crée un MemoryStream, y copie le contenu de la réponse, puis restaure le Response.Body original. Cette copie mise en mémoire tampon permet plusieurs lectures sans affecter le flux d'origine et garantit que la position du flux est correctement réinitialisée.

Cette approche offre une amélioration significative des performances par rapport à la manipulation directe de l'original Response.Body, offrant un moyen propre et efficace d'accéder et de réutiliser les données de réponse. L'utilisation de flux mis en mémoire tampon est cruciale pour gérer les scénarios nécessitant plusieurs lectures du corps de la réponse.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal