从php获取大量数据到android显示一半结果

时间:2013-04-26 06:51:47

标签: php android android-asynctask androidhttpclient

我正在尝试从php获取数据,我面临的问题是当数据很大时,只有一半的值已经在android端接收,而如果我只从浏览器调用php页面它给了我完整的价值

这是代码,这适用于一小组数据值,因为它不能提供完整的结果。

调用asyncTalk从服务器

获取数据
  DownloadMenu loadData = new DownloadMenu(AdminOperationActivity.this);
                            loadData.execute(ServerPath+"data.php");





public class DownloadMenu extends AsyncTask<String, Void, String>
     {
         ProgressDialog pd;
         Context context;

     public DownloadMenu(Context context) {
            this.context = context;
            pd = new ProgressDialog(context);   
        }
     @Override
     protected void onPreExecute(){

            pd.setMessage("Please wait Downloading Menu...");
            pd.setCancelable(false);
            pd.show();
        }
    @Override
    protected String doInBackground(String... urls) {
            // TODO Auto-generated method stub
        String output = null;
        for (String url : urls) {
            output = getOutputFromUrl(url);
        }
        return output;
    }     
    @Override
    protected void onPostExecute(String output) 
            {
                if (pd.isShowing()) {


                        pd.dismiss();
                }   
            }


    private String getOutputFromUrl(String url) {

        try {
            DefaultHttpClient httpClient = new DefaultHttpClient();
            HttpPost httpPost = new HttpPost(url);
            List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(
                    1);
            nameValuePairs.add(new BasicNameValuePair("hid", edHotelId.getText().toString().trim()));
            httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
            ResponseHandler<String> responseHandler = new BasicResponseHandler();
            String responseBody = httpClient.execute(httpPost,
                    responseHandler);
            Log.d("Hotel Menu Output",responseBody);

        return url;
    }
 }

0 个答案:

没有答案