如何计算Java HTTPGET带宽使用率?

如何计算Java HTTPGET带宽使用率?,java,bandwidth,apache-httpclient-4.x,Java,Bandwidth,Apache Httpclient 4.x,我有一个下载图片的应用程序,我正在尝试管理它使用的带宽 使用: JDK1.7 ApacheHttpClient 我正在加载带有以下内容的图片: client = new DefaultHttpClient(cm, params); client.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, new Integer(15000)); client.getParams().setParameter(CoreConnection

我有一个下载图片的应用程序,我正在尝试管理它使用的带宽

使用:

  • JDK1.7
  • ApacheHttpClient
我正在加载带有以下内容的图片:

client = new DefaultHttpClient(cm, params);
client.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, new Integer(15000));
client.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, new Integer(15000));
client.getParams().setParameter(CoreConnectionPNames.TCP_NODELAY, false);

....

HttpResponse response = client.execute(httpget, new BasicHttpContext());
System.exit(0);

....
然后使用HttpGet方法加载(作为示例)

问题就在这里

知道这个图像是1K,我应该期望带宽使用是1K+一些头和额外的数据包。然而,即使我没有完全检索内容并在方法执行之后退出,我仍然有6K的带宽使用率。这是否意味着每次调用HttpGet方法都会有6K的开销?我试图在客户端执行中循环

for (int i = 0; i < 10; i++)
{
    httpget = new HttpGet(URL); 
    setMethodeHeaders(httpget);
    response = client.execute(httpget, new BasicHttpContext());
    httpget.abort();
    Thread.sleep (1000);
    System.out.println ("Looping...");
}
for(int i=0;i<10;i++)
{
httpget=新的httpget(URL);
setMethodHeaders(httpget);
response=client.execute(httpget,new BasicHttpContext());
httpget.abort();
睡眠(1000);
System.out.println(“循环…”);
}
我用了6万。这对于10公里的图像来说是巨大的。如果我得到了内容长度,我就得到了1K的结果。不是6K的

因此,问题是:

  • 有没有办法跟踪真实的HttpClient带宽使用情况?
  • 有没有办法减少这种开销?

您如何衡量带宽使用率?您传输的不是10K图像。它是一张1K图像的十倍。差别很大。(用一个真正的10K映像试试看。)您也会在每个映像之后强制关闭HTTP连接,这会使事情变得更糟。@ams:我正在使用WinPCap和NetWorx。@StephenC:10K是因为循环;)10乘以1K的图像就像10K的图像。对于中止,这是因为我甚至不想获取图像内容。我只是想启动get,看看它的大小。我尝试了www.amazon.com/robots.txt,结果是一样的。我总是有6K来执行死刑。然后,如果我使用结果,我的总使用量为+6K。你如何衡量你的带宽使用量?你传输的不是10K图像。它是一张1K图像的十倍。差别很大。(用一个真正的10K映像试试看。)您也会在每个映像之后强制关闭HTTP连接,这会使事情变得更糟。@ams:我正在使用WinPCap和NetWorx。@StephenC:10K是因为循环;)10乘以1K的图像就像10K的图像。对于中止,这是因为我甚至不想获取图像内容。我只是想启动get,看看它的大小。我尝试了www.amazon.com/robots.txt,结果是一样的。我总是有6K来执行死刑。然后,如果我使用结果,我的总使用量为+6K。