2011-10-01 104 views
1

我正在编写一个应用程序,以使用Android设备从局域网上的Access数据库获取和设置数据。我使用HttpPost和/或HttpGet与服务器上的php页面进行通信,并通过odbc与db进行通信。:有更快的方法吗?

它运行良好,但每个查询需要几乎一秒的时间才能完成。有更快的方法吗?

我正在通过USB在实际设备上进行调试。当我从设备上的浏览器访问php页面时,速度会更快。此网络上没有其他流量。

谢谢!

编辑:下面是检索数据集的代码:

private JSONArray getData(String phpFile,ArrayList<NameValuePair> nameValuePairs){ 

String result = ""; 
InputStream is = null; 
JSONArray jArray=null; 

try{ 

    HttpClient httpclient = new DefaultHttpClient(); 

    HttpPost httppost = new HttpPost("http://" + mServerIP + "/dressageNet/"+ phpFile); 

    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

    HttpResponse response = httpclient.execute(httppost); 

    HttpEntity entity = response.getEntity(); 

     is = entity.getContent(); 

}catch(Exception e){ 
    Log.e("log_tag", "Error in http connection "+e.toString()); 
} 

try{ 

    BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8); 
    StringBuilder sb = new StringBuilder(); 
    String line = null; 
    while ((line = reader.readLine()) != null) { 
      sb.append(line + "\n");} 
    is.close(); 
    result=sb.toString(); 

}catch(Exception e){ 
    Log.e("log_tag", "Error converting result "+e.toString()); 
    } 

try{ 

    jArray = new JSONArray(result); 

}catch(JSONException e){ 
    Log.e("log_tag", "Error parsing data "+e.toString()); 
    } 

nameValuePairs.clear(); 
return jArray; 
} 
+0

如果您发布了一些代码,它会告诉我们您是如何实际使用get/post方法,这会更容易。也许在目前的状态下,有一些开销并不明显。 – darioo

回答

0

创建任何你想要的语言定制的服务器应用程序,并停止使用HTTP服务器和PHP。 PHP很慢,这会产生开销。当然你需要实现自己的协议,但速度要快很多。我在java中做了这样的事情,性能比POST/GET好。

相关问题