当前位置: 首页 > 编程语言 > C#

如何使用ASP.NETCore进行流式分享

时间:2023-04-10 11:59:09 C#

使用ASP.NETCore进行流式分享如何在ASP.NETCore中正确传输响应?有一个这样的控制器(更新代码):[HttpGet("test")]publicasyncTaskGetTest(){HttpContext.Response.ContentType="text/plain";使用(varwriter=newStreamWriter(HttpContext.Response.Body))awaitwriter.WriteLineAsync("HelloWorld");}Firefox/Edge浏览器显示HelloWorld,Chrome/Postman报错:Invalidpageforlocalhostlocalhostunexpectedlyclosedtheconnection。ERR_INCOMPLETE_CHUNKED_ENCODINGPS我即将流式传输大量内容,因此无法提前指定Content-Length标头。要流式传输应作为下载文件显示在浏览器中的响应,您应该使用FileStreamResult:returnnewFileStreamResult(stream,newMediaTypeHeaderValue("text/plain")){FileDownloadName="test.txt"};}这样的事情可能会起作用:[HttpGet]publicasyncTaskGetTest(){varcontentType="text/plain";使用(varstream=newMemoryStream(Encoding.ASCII.GetBytes("HelloWorld")))returnnewFileStreamResult(stream,contentType);我想知道如何做到这一点,并发现原始问题的代码实际上在ASP.NETCore2.1.0-rc1-final上工作正常,Chrome(和其他一些浏览器)和JavaScript应用程序都不会在这样的决赛中失败。我想添加的一些小东西只是设置StatusCode并关闭响应流,以便满足响应:以上是C#学习教程的全部内容:如何使用ASP.NETCore进行流式共享,如果是对大家有用,需要了解更多C#学习教程,希望大家多多关注—[HttpGet("test")]publicvoidTest(){Response.StatusCode=200;Response.ContentType="文本/纯文本";使用(Response.Body){使用(varsw=newStreamWriter(Response.Body)){sw.Write(“你好!”);}}}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: