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返回错误流不可读
。很抱歉,我必须先测试这个问题,显然这不是一个简单的方法。请检查这个问题