为什么读取Response.Content.ReadAsStreamAsync()
不会阻止将输出写入客户端?
摘要:我在ActionFilter
应用程序中有一个ASP.NET WebAPI 2
,正在读取ActionExecuted
事件中的整个输出流。这是示例代码:
var content = actionExecutedContext.Response.Content.ReadAsStreamAsync().Result;
byte[] buffer = new byte[content.Length];
content.Read(buffer, 0, (int)content.Length);
在那之后,我期望的是一个 empty-output ,但是整个输出最终都将传递给客户端。我在这里想念什么?不应该读流,结束流吗?
答案 0 :(得分:1)
不幸的是,调用该方法后它没有清空响应,它只是序列化响应并返回表示序列化内容的 Stream (请参见HttpContent.ReadAsStreamAsync Method)
如果要清除响应,则可以尝试将响应的Content
属性的值设置为从HttpContent派生的类之一的新实例。
希望有帮助!