在我的新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
}
}
答案 0 :(得分:2)
尝试更改本地主机的地址..我没有看到任何其他错误。