在ASP.NET Core MVC中,可以通过Request.Body属性访问输入流。以下是一个示例代码:
using Microsoft.AspNetCore.Mvc;
using System.IO;
public class HomeController : Controller
{
[HttpPost]
public IActionResult ProcessRequest()
{
using (StreamReader reader = new StreamReader(Request.Body))
{
string requestBody = reader.ReadToEnd();
// 处理请求体数据
// ...
}
return Ok();
}
}
在上述示例代码中,我们在ProcessRequest
方法中使用StreamReader
从Request.Body
中读取输入流。然后,我们可以通过reader.ReadToEnd()
方法将输入流读取为字符串,并对请求体数据进行处理。
请注意,Request.Body
是一个可读取且只能读取一次的流。如果您需要在其他地方再次读取输入流,可以将其存储在变量中,并使用Seek
方法将流的位置重置为起始位置。例如:
[HttpPost]
public IActionResult ProcessRequest()
{
Request.Body.Seek(0, SeekOrigin.Begin);
using (StreamReader reader = new StreamReader(Request.Body))
{
string requestBody = reader.ReadToEnd();
// 处理请求体数据
// ...
}
return Ok();
}
这样可以确保在读取请求体数据之前将流的位置重置为起始位置。