2
在我的新的android程序中,我需要向PHP頁面發送一個請求並以數組的形式接收響應。爲此,我創建了一個包含http請求和響應功能的類。它會發送請求並收到一些響應,但我無法打印這些數組,我不知道這是否會以數組或單個字符串形式出現。任何人都請幫助我解決這個錯誤。這裏是我的課...如何使用HTTP響應處理程序接收php響應數組
public class HistoryActivity extends Activity implements LocationListener{
String p_u_name;
HttpPost httppost;
StringBuffer buffer;
HttpResponse response;
HttpClient httpclient;
List<NameValuePair> nameValuePairs;
ProgressDialog dialog = null;
double park_latitude;
double park_longitude;
LocationManager locManager;
HttpEntity entity;
String rep;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.history);
SharedPreferences prefs = getSharedPreferences("myprefs", 0);
p_u_name = prefs.getString("KEY_USERNAME", "");
System.out.println("your name is"+p_u_name);
locManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0,0, this);
//get the current location (last known location) from the location manager
Location location = locManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if(location!=null)
{
park_latitude = location.getLatitude();
park_longitude = location.getLongitude();
dialog = ProgressDialog.show(HistoryActivity.this, "",
"Validating user...", true);
new Thread(new Runnable() {
public void run() {
parking();
}
}).start();
}
else
{
Toast.makeText(HistoryActivity.this,"no location found", Toast.LENGTH_SHORT).show();
}
}
public void parking(){
try{
httpclient=new DefaultHttpClient();
httppost= new HttpPost("http://10.0.2.2/test_login/history.php");
nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("username",p_u_name.trim()));
nameValuePairs.add(new BasicNameValuePair("park_latitude",Double.toString(park_latitude).trim()));
nameValuePairs.add(new BasicNameValuePair("park_longitude",Double.toString(park_longitude).trim()));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
ResponseHandler<String> responseHandler = new BasicResponseHandler();
String[] response =new String[2];
for(int i=0; i<10; i++){
response [i]= httpclient.execute(httppost, responseHandler);
System.out.println("Response : " +response[i]);
runOnUiThread(new Runnable() {
public void run() {
dialog.dismiss();
}
});
}
int d=response.length;
System.out.println(d);
if(d<1){
runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(HistoryActivity.this,"Successfully parked", Toast.LENGTH_SHORT).show();
}
});
// startActivity(new Intent(LoginActivity.this, MainActivity.class));
}
else{
Toast.makeText(HistoryActivity.this,"fucking", Toast.LENGTH_SHORT).show();
showAlert();
}
}catch(Exception e){
dialog.dismiss();
System.out.println("Exception : " + e.getMessage());
}
}
public void showAlert(){
HistoryActivity.this.runOnUiThread(new Runnable() {
public void run() {
AlertDialog.Builder builder = new AlertDialog.Builder(HistoryActivity.this);
builder.setTitle("Parking Error.");
builder.setMessage("Try again?.")
.setCancelable(false)
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
Intent r = new Intent(getApplicationContext(),HistoryActivity.class);
startActivity(r);
}
});
AlertDialog alert = builder.create();
alert.show();
}
});
}
public void onLocationChanged(Location arg0) {
// TODO Auto-generated method stub
}
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub
}
}