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

Here is a flow:

  • Send to the server Android current time.
  • Server should store time offset between server time and android time
  • Next, Send your request where one of parameters should be time when Android sent message.
  • Server will take his local time, add offset between server time and android time and calculate receive time.

Easy, right?

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

Lets say android has time 14:23:01:010 Server time 14:23:15:000

Android sends request with his local time and server store offset (14:23:15:000) - (14:23:01:010) = 13.990 sec.

Now Android sends the message when local time was 14:24:01:000 and server got message when HIS local time was 14:24:16:050.

So (14:24:16:050) - (14:24:01:000) = 15.050 sec.

Now remove offset:

15.050 - 13.990 = 1.06 sec

This is your request time

于 2013-02-18T09:18:45.887 に答える
0

HTTP リクエストを送信する前の単純な保存時間と、HTTP リクエストが返されたときの保存時間の差は、リクエストが完了するまでにかかる時間です。

于 2013-02-18T09:30:43.647 に答える