Android登录应用程序与PHP和MySQL不工作
我想建立一个Android与PHP和MySQL登录应用程序。 我使用下面的代码。当我运行应用程序时,我总是在屏幕上看到消息“连接错误”。我应该如何让try块中的代码正常工作?Android登录应用程序与PHP和MySQL不工作
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();
}
}
});
}
首先,如果最后一个关闭,不需要创建相同的问题。
没有实际崩溃的logcat。你的代码有一个大错误,你似乎在UI线程上进行网络操作。除非您更改策略,否则一些Android版本会立即崩溃,如果操作需要很长时间,其他版本可能会崩溃。 你应该看看AsyncTask
或其他线程。
我把我的代码放到一个独立的项目中,只有一个活动:连接活动。我的logcat根本没有显示任何东西。当我运行应用程序时,我收到“连接错误”消息,这意味着代码尝试集团正在产生异常。 – 2013-03-19 16:12:00
Your e.printStackTrace();应该在你的logcat中给你一些东西。 – 2013-03-19 17:06:20
logcat告诉你什么?自从你上次提出同样的问题以来,你试过了什么?请参阅http://*.com/q/15485323/824914 – 2013-03-19 15:21:07
是您的apache服务器运行?你有iny MySQL错误在PHP? – 2013-03-19 15:22:24
首先编辑这个http://10.0.2.2/www/login.php到'http:// 10.0.2.2/www/login.php'并检查浏览器是否正常工作。 – 2013-03-19 15:29:23