我有一个用Angular 2编写的客户端,它命中了一个返回大量对象的API。我想将其拆分,以便我可以为用户提供一些数据,同时在后台加载其余的数据。
通过在线查看在请求中流式传输数据的方式,PushStreamContent类似乎是最合适的(对更好的建议开放)。我一直在阅读本教程http://blog.guvweb.co.uk/2014/07/02/streaming-web-api/
我试过实现了一个基本的例子,它将流式传输一个数字列表,以便我可以测试它。
我刚刚从浏览器直接访问API以查看它是否返回任何数据。我收到此错误消息。
有人能告诉我我做错了什么吗?
我的控制器类
[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);
}
答案 0 :(得分:1)
我没有发现问题,我自己的常识是罪魁祸首!
我的浏览器正在下载文件而我没有看到它们,API流工作正常!