CodeGo.net>如何获得HttpResponse大小
作者:互联网
我正在寻找一种方法来获取发送到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中的某些内容应该已经有了计数,我正在尝试查看是否有可能获得计数.
我要避免的解决方案是获取所有数据,然后将其解析到某个点以找到达到该点的大小.到目前为止,我的大部分搜索都只提供了这类解决方案.
解决方法:
使用dotPeek我发现HttpResponse有一个内部GetBufferedLength方法,该方法用于计算跟踪的控件的大小:
int bufferedLength1 = httpContext.Response.GetBufferedLength();
this.RenderControlInternal(writer, adapter);
int bufferedLength2 = httpContext.Response.GetBufferedLength();
这不是理想的方法,但是您可以通过反射调用此方法.
标签:asp-net-2-0,httpresponse,c 来源: https://codeday.me/bug/20191201/2079918.html