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(); 

      } 








     } 




    }); 




    } 
+0

logcat告诉你什么?自从你上次提出同样的问题以来,你试过了什么?请参阅http://*.com/q/15485323/824914 – 2013-03-19 15:21:07

+0

是您的apache服务器运行?你有iny MySQL错误在PHP? – 2013-03-19 15:22:24

+0

首先编辑这个http://10.0.2.2/www/login.php到'http:// 10.0.2.2/www/login.php'并检查浏览器是否正常工作。 – 2013-03-19 15:29:23

首先,如果最后一个关闭,不需要创建相同的问题。

没有实际崩溃的logcat。你的代码有一个大错误,你似乎在UI线程上进行网络操作。除非您更改策略,否则一些Android版本会立即崩溃,如果操作需要很长时间,其他版本可能会崩溃。 你应该看看AsyncTask或其他线程。

+0

我把我的代码放到一个独立的项目中,只有一个活动:连接活动。我的logcat根本没有显示任何东西。当我运行应用程序时,我收到“连接错误”消息,这意味着代码尝试集团正在产生异常。 – 2013-03-19 16:12:00

+0

Your e.printStackTrace();应该在你的logcat中给你一些东西。 – 2013-03-19 17:06:20