如何使用HTTP-response-handler接收php响应数组

时间:2012-10-30 06:20:19

标签: android httprequest httpresponse requesthandler

在我的新android程序中,我需要向PHP页面发送一个请求并以数组形式接收响应。为此,我创建了一个包含http请求和响应功能的类。它会发送请求并收到一些响应但我不能打印那些数组,我不知道它是以数组还是单个字符串形式出现。有人请帮我解决这个问题。这是我的班级......

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,"Message", 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

    }
}

1 个答案:

答案 0 :(得分:2)

尝试更改本地主机的地址..我没有看到任何其他错误。