C#HttpWebRequest获取总页面大小

时间:2012-01-09 12:15:32

标签: c# .net

您好我正在尝试使用HttpWebRequest从图像脚本等获取整个页面大小。如果一个用户通过Web浏览器访问该页面,我需要计算网页的总流量。内容长度以字节大小显示内容的长度。它实际上是文件长度。但我需要从图像和脚本中获取所有流量

这是我的代码到目前为止

NetworkCredential cred = new NetworkCredential("username", "password");
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);            
request.Proxy = new System.Net.WebProxy("proxy", true);
request.Proxy.Credentials = cred;
request.UserAgent = @"Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5";
using (HttpWebResponse requestresponse = (HttpWebResponse)request.GetResponse())
                {
                    Headers = requestresponse.Headers;
                    Url = requestresponse.ResponseUri;                    
                   int ContentLength;

                    if (int.TryParse(response.Headers.Get("Content-Length"), out ContentLength))
                    {                    
                        //This is One way i get the content leangth
                        WebPageSize = ContentLength;
                    }
                        //This is another way i get the content leangth
                    WebPageSize = request.ContentLength;
                    return ProcessContent(requestresponse);                   
                }

此外,我不保证标头内容长度服务器会回复它。

有什么建议吗?

2 个答案:

答案 0 :(得分:3)

如果您只需要检查一次大小,为什么不尝试使用Firebug的Net面板(Firefox扩展)或其他浏览器的等效工具?它将告诉您加载网页时执行的所有请求的大小。

答案 1 :(得分:0)

如果您是进行测量的人并且可以保证不会有其他网络流量,您可以尝试以下方法:

从IPv4Statistics获取TotalBytesReceived

在WebBrowserControl中打开页面,等待所有资源都加载完毕。

再次获取总字节数。

从这两个数字中,您可以计算总大小。

这是一篇关于使用IPv4Statistics的文章:

http://www.m0interactive.com/archives/2008/02/06/how_to_calculate_network_bandwidth_speed_in_c_/