Ich habe einen Client in Angular 2 geschrieben, es trifft eine API, die eine große Menge von Objekten zurückgibt. Ich möchte es aufteilen, damit ich dem Benutzer einige Daten präsentieren kann, während der Rest im Hintergrund geladen wird.Verwenden von PushStreamContent zum Teilen von Daten in Chunks
Aus der Online-Suche nach Möglichkeiten, Daten in einer Anfrage zu streamen, schien die PushStreamContent-Klasse am besten geeignet (offen für bessere Vorschläge). Ich habe dieses Tutorial durchgelesen http://blog.guvweb.co.uk/2014/07/02/streaming-web-api/
Ich habe versucht, ein grundlegendes Beispiel implementiert, das eine Liste von Zahlen streamen wird, damit ich es testen konnte.
In der Minute, die ich gerade die API direkt vom Browser treffe, um zu sehen, ob es irgendwelche Daten zurückgibt. Ich bekomme diese Fehlermeldung.
Kann mir jemand sagen, was ich falsch mache?
Mein Controller-Klasse
[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);
}