私は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;
}
}