我正在尝试使用php和mysql构建一个Android登录应用程序。 我正在使用下面的代码。当我运行应用程序时,我总是在屏幕上看到“连接错误”消息。我该怎么做才能使try块中的代码正常工作?
public void onClick(View v)
{
httpclient = new DefaultHttpClient() ;
httppost=new HttpPost("Http://10.0.2.2/www/login.php");
//assign input text to string
String username=etUser.getText().toString();
String password=etPass.getText().toString();
try{
nameValuePairs.add(new BasicNameValuePair("username",username)) ;
nameValuePairs.add(new BasicNameValuePair("password",password)) ;
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
response=httpclient.execute(httppost);
entity=response.getEntity();
if (entity!=null){
InputStream instream=entity.getContent();
JSONObject jsonResponse=new JSONObject(convertStreamToString(instream));
String retUser=jsonResponse.getString("user");
String retPass=jsonResponse.getString("pass");
if(username.equals(retUser)&&password.equals(retPass)){
SharedPreferences sp= getSharedPreferences("login details",0);
SharedPreferences.Editor spedit =sp.edit();
spedit.putString("user",username);
spedit.putString("pass",password);
spedit.commit();
Toast.makeText(getBaseContext(),"success !",Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(getBaseContext(),"Invalid Lodin details",Toast.LENGTH_SHORT).show();
}
}
}catch(Exception e){
e.printStackTrace();
Toast.makeText(getBaseContext(),"connection error",Toast.LENGTH_SHORT).show();
}
}
});
}
答案 0 :(得分:0)
首先,如果最后一个问题被关闭,则无需创建相同的问题。
没有用于实际崩溃的logcat。您的代码中有一个大错误,您似乎在UI线程上进行网络操作。除非您更改策略,否则某些Android版本会立即崩溃,如果操作需要很长时间,则其他版本可能会崩溃。
您应该查看AsyncTask
或其他线程。