2012-10-30 101 views
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 

    } 
} 

回答

1

嘗試更改您的本地主機的地址..我沒有看到任何其他錯誤。