使用PushStreamContent将数据分成块

4
我有一个使用Angular 2编写的客户端,它会调用一个API并返回大量对象。我想将其拆分,以便在后台加载剩余数据的同时向用户呈现一些数据。

从在线查找的请求流数据的方式来看,PushStreamContent类似乎是最合适的(欢迎更好的建议)。我一直在阅读这篇教程http://blog.guvweb.co.uk/2014/07/02/streaming-web-api/

我已经尝试实现一个基本示例,以便测试它是否可以流式传输数字列表。

目前,我只是直接从浏览器访问API,看看它是否返回任何数据。我得到了这个错误消息。

API Error Page

请问有人可以告诉我我做错了什么吗?

我的控制器类

[Route("numbers")]
[HttpGet]
public IHttpActionResult StreamData()
{
    // Generates a list of numbers 1 --> 1,000,000
    List<int> numbers = _dataAccess.GenerateNumbers();

    var response = Request.CreateResponse();

    response.Content = new PushStreamContent( (stream, Content, context) => 
    {
        try
        {
            foreach (var num in numbers)
            {
                var serializer = new JsonSerializer();
                using (var writer = new StreamWriter(stream))
                {
                    serializer.Serialize(writer, num);
                    stream.Flush();
                }
            }
        }
        finally
        {
            stream.Close();
        }

    });

    return Ok(response);
}
1个回答

2

没关系,我找到问题了,是我的常识出了问题!

我的浏览器正在下载文件,而我没有看到它们,API 流正常工作!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接