専用サーバーでホストされているphpファイルにいくつかの投稿値を送信し、配列結果を保存するAndroidアプリをコーディングしようとしています
コードはこれです
HttpPost httppost;
DefaultHttpClient httpclient;
httppost = new HttpPost("http://IP/script.php");
HttpParams param = new BasicHttpParams();
param.setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);
// httppost.getParams().setBooleanParameter(CoreProtocolPNames.USE_EXPECT_CONTINUE, false);
HttpProtocolParams.setContentCharset(param, "UTF-8");
httpclient = new DefaultHttpClient(param);
ResponseHandler <String> res=new BasicResponseHandler();
List<NameValuePair> nameValuePairs;
nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("id","1"));
nameValuePairs.add(new BasicNameValuePair("api", "1"));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
Log.v("1",System.currentTimeMillis()+"");// Log to know the time diff
String result= httpclient.execute(httppost, res);
Log.v("2",System.currentTimeMillis()+""); // Log to know the time diff
このコードは、約 2.5 秒 (3G または WiFi の場合) を浪費して投稿を送信し、サーバーから "ok" の文字列を取得します。wifi が良好な場合でも、今回は 2.2 / 2.0 秒までしか低下しません。
同じ電話と 3G を介してインターネットに接続されたコンピューターで単純な Ajax sendpost スクリプトを実行しました。同じことを行うのに約 0.300 ミリ秒かかります。
/// ***更新
コンピューターでjqueryスクリプトを再試行しました(モバイル3G + / HDSPA接続を使用)
平均応答時間は約250msですが、常に最初のリクエストは最大 1.7秒です。30 秒間隔で投稿を送信しようとしたところ、平均時間が 1.5 秒になりました。次に、2 秒間隔で投稿を送信しようとしました。 1.41 秒、次は 252 ミリ秒でした
ここでチャートを見ることができます: http://i46.tinypic.com/27zjl8n.jpg
ケーブル接続 (標準のホーム DSL) を使用したこの同じテストでは、常に~170ms間隔の固定時間応答が提供されます (ここでは確固たる議論ではありませんが、最初の試行はわずかに高い可能性があります)。
つまり、最初の試行でモバイル接続に深刻な影響を与える何か (または間違っている) があります。何かアイデアはありますか?