【问题标题】:Does Chunked Transfer Encoding work with Nancy, OWIN and HttpListener?分块传输编码是否适用于 Nancy、OWIN 和 HttpListener?
【发布时间】: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? - 这个问题似乎暗示它不起作用,但我想知道它是否已经修复,因为这是不久前提出的)

【问题讨论】:

    标签: .net owin nancy


    【解决方案1】:

    为了完整起见,这确实可以正常工作它不适用于 Fiddler。 Fiddler 一口气捕获了整个响应。

    【讨论】:

      猜你喜欢
      • 2012-02-18
      • 2012-01-26
      • 1970-01-01
      • 2023-03-16
      • 1970-01-01
      • 2018-04-04
      • 1970-01-01
      • 2011-02-09
      • 2011-03-14
      相关资源
      最近更新 更多