我有一个使用C#的ASP.NET应用程序。我需要发送从服务器上动态生成的大文本字符串。如何流式传输响应而不是将所有内容保存在内存中(即在字符串变量中),然后在最后发送所有内容?
所以这里有更多信息。我像这样生成我的文本:
List<Row> results = getRows();
我希望像这样流出来:
foreach(Row curRow in results){
HttpContext.Current.Response.Write(Row.data1 + " " + Row.data2);
}
答案 0 :(得分:0)
您可以使用WebAPI或Handler,HttpContext.Request有一个流。获取该流并阅读它。您可以将其读入memoryStream或将其写入文件流等...
答案 1 :(得分:0)
您可以将Response.Flush()
添加到现有代码中以允许此操作。
foreach(Row curRow in results){
HttpContext.Current.Response.Write(Row.data1 + " " + Row.data2);
HttpContext.Current.Response.Flush();
}
但请注意,如果您在调用第一个Flush()
后尝试更改标题中的任何内容(Cookie或其他任何内容),则会收到异常。