首页 > 解决方案 > 如何在 ASP.NET 中访问响应正文

问题描述

我可以通过以下方式添加标题:

Response.Headers.Add("Key", "Value");

然后通过以下方式访问标头中的值:

var header = Response.Headers["Key"];

我想知道是否有任何方法可以以类似的方式访问响应的正文。即,当我写作时,Response.Write("Hello World");我希望能够得到那个“Hello World”。有一个Response.Output._charBuffer可以完成这项工作,但又可以私下访问。

更新:我只想检查响应正文是否为空。我实际上并不需要身体本身。

标签: c#asp.netasp.net-mvchttpresponse.net-framework-4.8

解决方案


您的目标是存储和仅读取 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();
 }

推荐阅读