代码之家  ›  专栏  ›  技术社区  ›  Ben Scheirman

通过httpmodule确定页面大小

  •  4
  • Ben Scheirman  · 技术社区  · 16 年前

    下面是一个简单的例子:

    我目前正在通过httpmodule记录请求持续时间,我想找出每个页面的字节数。

    HttpContext.Current.Response.OutputStream.Length 抛出一个 NotSupportedException .

    做这件事的简单方法是什么?

    1 回复  |  直到 11 年前
        1
  •  3
  •   Jason Z    16 年前

    我有一个实现流重写器的httpmodule。它派生自stream类。在我的httpmodule中,我有以下代码:

    void app_PreRequestHandlerExecute(object sender, EventArgs e)
    {
        HttpResponse response = HttpContext.Current.Response;
        response.Filter = new MyRewriterStream(response.Filter);
    }
    

    在stream类中,我有以下代码重写默认的write方法:

    public override void Write(byte[] buffer, int offset, int count)
    {
         string outStr;
         outStr = UTF8Encoding.UTF8.GetString(buffer, offset, count);
         //Do useful stuff and write back to the stream
    }
    

    你只需在第二个点取字符串的长度