我正在尝试编写一个 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”字符串,即使这次有良好的 wifi 也只有 2.2 / 2.0 秒
我在通过同一部手机和 3G 连接到互联网的计算机上运行了一个简单的 Ajax sendpost 脚本,做同样的事情需要大约 0.300 毫秒,所以 ¿ 相同的连接,相同的动作,2 秒的差异?
/// ***更新
我在计算机上再次尝试了我的 jquery 脚本(使用移动 3G+/HDSPA 连接)
平均时间响应约为250毫秒,但第一个请求总是最多 1.7 秒,我尝试以 30 秒的间隔发送帖子,平均时间为 1.5 秒,然后我尝试以 2 秒的间隔发送帖子,第一个是 1.41 秒,接下来是 252 毫秒
在这里你们可以查看图表:http: //i46.tinypic.com/27zjl8n.jpg
无论如何,使用电缆连接(标准家庭 DSL)进行的相同测试始终提供约 170 毫秒间隔的固定时间响应(这里不是可靠的论点,但恕我直言,第一次尝试可能略高一些)
所以在第一次尝试中出现了严重影响移动连接的问题(或错误),有什么想法吗?