如何在 ASP.NET Core 中正确传输响应?
有一个像这样的控制器(更新的代码):
[HttpGet("test")]
public async Task GetTest()
{
HttpContext.Response.ContentType = "text/plain";
using (var writer = new StreamWriter(HttpContext.Response.Body))
await writer.WriteLineAsync("Hello World");
}
Firefox/Edge浏览器显示
你好世界
,而Chrome/Postman报错:
本地主机页面无法正常工作
localhost 意外关闭了连接。
ERR_INCOMPLETE_CHUNKED_ENCODING
附:我即将传输大量内容,因此无法提前指定 Content-Length 标头。
要流式传输应在浏览器中显示为下载文件的响应,您应该使用FileStreamResult
:
[HttpGet]
public FileStreamResult GetTest()
{
var stream = new MemoryStream(Encoding.ASCII.GetBytes("Hello World"));
return new FileStreamResult(stream, new MediaTypeHeaderValue("text/plain"))
{
FileDownloadName = "test.txt"
};
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)