如何获得的HttpResponse大小(How to get HttpResponse size)

2019-09-17 06:37发布

我正在寻找一种方式来获得在ASP.NET 2.0响应发送到一定的点,这样我可以写这个数字到响应的字节数。 就像是:

Page.aspx:

<script runat="server">
    private string GetResponseSize()
    {
        int nCurrentResponseSize = ...; // what goes here?
        return ( nCurrentResponseSize.ToString() );
    }
</script>
<html>
  <head runat="server"><title>test</title></head>
  <body>
    <div>Size 1: <%= GetResponseSize() %></div>
    <br />
    <div>Size 2: <%= GetResponseSize() %></div>
  </body>
</html>

问题是, HttpResponse.OutputStream.Length不支持( 的NetworkStream不支持它)。

我可以实现一个HtmlTextWriter覆盖网页的默认之一,数里ASP.NET字节,但事情应该已经算,我想看看是否有可能得到它。

我想避免的是,涉及如何让所有数据,然后将其解析到某一点发现大小到这一点的解决方案。 到目前为止,我的大部分搜索只打开了这些类型的解决方案。

Answer 1:

使用dotPeek我发现的HttpResponse具有被用于计算跟踪控制的大小的内部GetBufferedLength方法:

int bufferedLength1 = httpContext.Response.GetBufferedLength();
this.RenderControlInternal(writer, adapter);
int bufferedLength2 = httpContext.Response.GetBufferedLength();

这不是理想的,但你可以通过反射调用此方法。



文章来源: How to get HttpResponse size