您好我正在尝试使用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);
}
此外,我不保证标头内容长度服务器会回复它。
有什么建议吗?
答案 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_/