我正在尝试测量 HttpWebRequest(和响应)发送和接收的数据量。
据我所知,只能知道请求和响应内容的长度,即正文,而不是标头。
有谁知道如何获得完整的长度?是要对标头和正文求和,还是可能只是一种测量来自线程或进程的所有网络 IO 的方法?
我正在尝试测量 HttpWebRequest(和响应)发送和接收的数据量。
据我所知,只能知道请求和响应内容的长度,即正文,而不是标头。
有谁知道如何获得完整的长度?是要对标头和正文求和,还是可能只是一种测量来自线程或进程的所有网络 IO 的方法?
您是否查看过 System.Net 性能计数器?
编辑:
System.net 已经为此公开了性能计数器。如果您启动“perfmon.exe”并转到“.NET CLR Networking”类别,您将看到以下计数器:
这应该为您提供所需的一切。
总结标题和正文可能会产生您正在寻找的答案。测量 nio 不是推荐的方法,因为它需要提升您的应用程序和程序集的权限;只要有可能,应用程序及其程序集应仅使用尽可能低的安全级别来执行应用程序的意图,仅此而已。在提升权限的情况下,必须假设您对机器具有上帝访问权限(root / domain admin / etc.)。
参考 1:http: //msdn.microsoft.com/en-us/library/system.net.httpwebrequest.contentlength.aspx
参考 2:http: //msdn.microsoft.com/en-us/library/system.net.webheadercollection.aspx