我正在尝试编写一个 Android 应用程序,将一些发布值发送到托管在专用服务器上的 php 文件并存储数组结果
代码是这样的
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”字符串,即使 Wi-Fi 良好,这次也只花费了 2.2 / 2.0 秒
我在通过同一部手机和 3G 连接到互联网的计算机中运行了一个简单的 Ajax sendpost 脚本,完成相同的操作大约需要 0.300 毫秒,所以“相同的连接,相同的操作,2 秒的差异?”
///***更新
我在计算机上再次尝试了 jquery 脚本(使用移动 3G+/HSPA 连接)
平均响应时间约为250ms但总是第一次请求最多 1.7 秒,我尝试以 30 秒的间隔发送帖子,平均时间为 1.5 秒,然后我尝试以 2 秒的间隔发送帖子,第一个是 1.41 秒,下一个是 252 毫秒
大家可以在这里查看图表:http://i46.tinypic.com/27zjl8n.jpg http://i46.tinypic.com/27zjl8n.jpg
使用电缆连接(标准家庭 DSL)进行的相同测试始终提供固定时间响应~170ms无论如何间隔(这里不是可靠的论据,但恕我直言,也许第一次尝试稍微高一些)
因此,在第一次尝试中,出现了一些问题(或错误),严重影响了移动连接,大家有什么想法吗?