c# - 如何在 ASP.NET 中访问响应正文
问题描述
我可以通过以下方式添加标题:
Response.Headers.Add("Key", "Value");
然后通过以下方式访问标头中的值:
var header = Response.Headers["Key"];
我想知道是否有任何方法可以以类似的方式访问响应的正文。即,当我写作时,Response.Write("Hello World");
我希望能够得到那个“Hello World”。有一个Response.Output._charBuffer
可以完成这项工作,但又可以私下访问。
更新:我只想检查响应正文是否为空。我实际上并不需要身体本身。
解决方案
您的目标是存储和仅读取 Response 对象中的字符串吗?如果是这样,你可以做这样的事情
using (StreamReader sr = new StreamReader(HttpContext.Response.Body))
{
var stringResult = sr.ReadToEnd(); //This should be equal to "Hello World"
}
更新:我将您的评论标记为您正在使用 .NET 4.5。那么试试这个:
using (StreamReader sr = new StreamReader(HttpContext.Response.OutputStream))
{
var result = sr.ReadToEnd();
}