gpt4 book ai didi

c# - 如何使用 ASP.NET Core 进行流式处理

转载 作者:可可西里 更新时间:2023-11-01 02:59:37 26 4
gpt4 key购买 nike

如何在 ASP.NET Core 中正确地流式传输响应?有一个这样的 Controller (更新代码):

[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浏览器显示

Hello World

,同时 Chrome/Postman 报错:

The localhost page isn’t working

localhost unexpectedly closed the connection.

ERR_INCOMPLETE_CHUNKED_ENCODING

附言我即将流式传输大量内容,因此无法提前指定 Content-Length header 。

最佳答案

要流式传输应该在浏览器中显示为下载文件的响应,您应该使用 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"
};
}

关于c# - 如何使用 ASP.NET Core 进行流式处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42771409/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com