0

我正在从我的移动 Android 应用程序向服务器发送一个 http 请求,我想打印出上传花了多长时间。我怎样才能做到这一点?

仅仅在请求之前和之后打印出系统时间并没有帮助,因为它还包括服务器响应所花费的时间。

这是我当前的请求代码:

HttpPost httppost = getHeader(uri, 0);    //fileSize);
httppost.setEntity(reqEntity);
HttpResponse response = null;
httpclient = new DefaultHttpClient();

Log.i(TAG, "start execute");
response = httpclient.execute(httppost);
int code = response.getStatusLine().getStatusCode();
if (code != 200) {
    Log.i(TAG, "http error! : " + code);
    throw new HttpException("Server returns with http error (" + code + ")");
}
4

2 回答 2

1

这是一个流程:

  • 发送到服务器 Android 当前时间。
  • 服务器应该存储服务器时间和安卓时间之间的时间偏移
  • 接下来,将您的请求发送到其中一个参数应该是 Android 发送消息的时间。
  • 服务器将采用他的本地时间,在服务器时间和android时间之间添加偏移量并计算接收时间。

容易,对吧?

==================================================== ==========

假设 android 有时间 14:23:01:010 服务器时间 14:23:15:000

Android 使用他的本地时间和服务器存储偏移 (14:23:15:000) - (14:23:01:010) = 13.990 秒发送请求。

现在Android在当地时间14:24:01:000发送消息,服务器在HIS当地时间14:24:16:050收到消息。

所以 (14:24:16:050) - (14:24:01:000) = 15.050 秒。

现在删除偏移量:

15.050 - 13.990 = 1.06 秒

这是您的请求时间

于 2013-02-18T09:18:45.887 回答
0

发送HTTP请求之前的简单保存时间和返回时保存的时间,然后它们的区别将是请求完成所花费的时间。

于 2013-02-18T09:30:43.647 回答