在Java中,结果 字节怎么能发送,并且在计数的活动HTTP连接接收?点击 我想显示像一些统计信息:

Bytes Sent     : xxxx Kb   
Bytes Received : xxxx Kb  
Duration       : hh:mm
有帮助吗?

解决方案

这是很难看你怎么可以装点的的HttpConnection 以计数的原始字节数据。你可以使用套接字重新实现HTTP,但这必须去那些长度是非常重要的。

stackoverflow.com示例响应:

HTTP/1.1 200 OK
Cache-Control: private
Content-Type: text/html; charset=utf-8
Content-Encoding: gzip
Expires: Mon, 21 Sep 2009 11:46:48 GMT
Vary: Accept-Encoding
Server: Microsoft-IIS/7.0
Date: Mon, 21 Sep 2009 11:46:48 GMT
Content-Length: 19452

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
                      "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>...remaining data....

HTTP请求是相当简单的,所以你可以尝试使用暴露的信息重建它。形式的东西:

// TODO: edge cases, error handling, header delimiter, etc.
int byteCount = 0;
int headerIndex = 0;
while (true) {
  String key = httpConnection.getHeaderFieldKey(headerIndex);
  if (key == null)
    break;
  String value = httpConnection.getHeaderField(headerIndex++);
  byteCount += key.getBytes("US-ASCII").length
      + value.getBytes("US-ASCII").length + 2;
}
byteCount += httpConnection.getHeaderFieldInt("Content-Length",
    Integer.MIN_VALUE);

这实现是不完整的和未经测试。你需要上晚自习的 HTTP协议的细节,以确保准确性您结果

其他提示

在自己的流表示,计数,通过他们去字节裹HttpURLConnection的的getInputStream()和getOutputStream方法()。甚至更好的使用Apache Commons IO库 - 他们已经在那里计算流实现

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top