【发布时间】:2014-10-13 17:50:44
【问题描述】:
我正在使用 Nancy、OWIN 和 Microsoft.Owin.Host.HttpListener 来自托管 REST 服务。
我的一个服务需要返回大量数据,我想将其流式传输到客户端。
这不起作用:
Get["/stream"] = _ =>
{
var response = new Response();
response.Headers.Add("Transfer-Encoding", "Chunked");
response.ContentType = "text/plain";
response.Contents = s =>
{
byte[] bytes = Encoding.UTF8.GetBytes("Hello World\n");
for (int i = 0; i < 10; ++i)
{
s.Write(bytes, 0, bytes.Length);
s.Flush();
Thread.Sleep(2000);
}
};
return response;
};
这应该有效吗?如果可以,我做错了什么?在 Fiddler 中查看结果,设置了 Content-Length 并且仅在 20 秒后才能看到整个响应。
(我在 Google 上找不到任何确凿的答案。 How do I write streamed output in NancyFX? - 这个问题似乎暗示它不起作用,但我想知道它是否已经修复,因为这是不久前提出的)
【问题讨论】: