httpContext响应正文有时无法从流中读取

时间:2018-07-17 07:08:07

标签: c# .net-core

我们有一些中间件需要重写响应,并且每隔几个请求,我发现我都无法将流中的内容读入字符串,即使Position显示为5000(表明数据已经存在)

这是在加载同一网页时,因此应该具有5000字节的数据。

有一个非常相似的问题here,但我无法解决这个问题

public async Task Invoke(HttpContext httpContext)
{
  Stream originBody = httpContext.Response.Body;
  MetaDataContentStream newBody = new MetaDataContentStream();
  httpContext.Response.Body = newBody;
  await m_Next(httpContext);

  newBody.Seek(0, SeekOrigin.Begin);
  string content = await new StreamReader(newBody).ReadToEndAsync();
  // NB: content is sometimes an empty string!        

  // other code...  
}

如果我再次调用ReadToEndAsync,它将加载数据,但是我想知道是否存在“更精细”的方法。

0 个答案:

没有答案