代码之家  ›  专栏  ›  技术社区  ›  kovac

如何使用自定义响应格式化程序流式传输Http响应?

  •  1
  • kovac  · 技术社区  · 6 年前

    public static void CsvStreamHelper(IEnumerable<T> data, Stream stream)
    {
        using (var writer = new StreamWriter(stream))
        {
            foreach (var line in data)
            {
                // format csv lines here
                writer.WriteLine(lineString);
            }
    
            writer.Flush();
        }
    }
    

    然后,我在我的控制器中使用它,比如:

    public Task<IActionResult> MyController()
    {
        var data = // Get data here.
    
        CsvStreamHelper(data, this.HttpContext.Response.Body);
    
        return new EmptyResult();
    }
    

    like here 同时继续流式响应。

    WriteResponseBodyAsync 方法使用my helper方法。我不确定的是我是否在我的Rest控制器中使用它 this.Ok(data) ,而不是流式传输响应,而是构建响应并在一个块中发送它。如何使用内容协商中间件实现流式响应?

    0 回复  |  直到 6 年前