Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在ASP.NET中访问响应正文_C#_Asp.net_Asp.net Mvc_Httpresponse_.net Framework 4.8 - Fatal编程技术网

C# 如何在ASP.NET中访问响应正文

C# 如何在ASP.NET中访问响应正文,c#,asp.net,asp.net-mvc,httpresponse,.net-framework-4.8,C#,Asp.net,Asp.net Mvc,Httpresponse,.net Framework 4.8,我可以通过以下方式添加标题: Response.Headers.Add("Key", "Value"); 然后通过以下方式访问标题中的值: var header = Response.Headers["Key"]; 我想知道是否有任何方法可以以类似的方式访问响应的主体。i、 e.当我写Response.write(“你好世界”)我希望能够获得“Hello World”。有一个Response.Output.\u charBuffer

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

Response.Headers.Add("Key", "Value");
然后通过以下方式访问标题中的值:

var header = Response.Headers["Key"];
我想知道是否有任何方法可以以类似的方式访问响应的主体。i、 e.当我写
Response.write(“你好世界”)我希望能够获得“Hello World”。有一个
Response.Output.\u charBuffer
哪种类型做这项工作,但还是可以私下访问

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

您的目标是存储和读取响应对象中的字符串吗?如果是这样,你可以这样做

  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();
 }

您需要发送一个带有正文的HTTP POST。使用InputStream阅读响应:@jdweng感谢您的回答,但InputStream从请求中获得响应。我希望能够得到我发送的响应的主体,而不是我收到的请求。在这个示例中,您可以看到您想要做的事情。对于.Net5@Faraz感谢您提供的资源,但我使用的是.NET4.5而不是core。请求或响应的结构没有区别。请求和响应都有标题和正文,都可以作为流或文本阅读。感谢您的回答,但是
HttpContext.response.body
在.net core中工作,我使用的是.net framework 4.x,它在
HttpContext.Response
中不包含正文。我为.net 4.5添加了一个建议,使用StreamReader返回错误
流不可读
。很抱歉,我必须先测试这个问题,显然这不是一个简单的方法。请检查这个问题