2016-04-15 3 views
-2

Проблема заключается в том, что метод onPostExecute не работает на самом деле, код останавливается после выполнения onPreExecute. После ввода учетных данных и нажатия кнопки входа в систему отображается только статус входа в систему, но не результат, т. Е. «Успех входа в систему», или «login not success» из php-файла, или вы можете сказать, что метод onPostExecute возвращает значение null String. Пожалуйста, help.I не получаю это.onPostExecute метод не работает

public class BackgroundWorker extends AsyncTask<String,Void,String> { 
     Context context; 
     AlertDialog alertDialog; 
     BackgroundWorker (Context ctx) { 
      context = ctx; 
     } 
     @Override 
     protected String doInBackground(String... params) { 
      String type = params[0]; 
      String login_url = "http://127.0.0.1/login3.php"; 
      if(type.equals("login")) { 
       try { 
        String user_name = params[1]; 
        String password = params[2]; 
        URL url = new URL(login_url); 
        HttpURLConnection httpURLConnection = (HttpURLConnection)url.openConnection(); 
        httpURLConnection.setRequestMethod("POST"); 
        httpURLConnection.setDoOutput(true); 
        httpURLConnection.setDoInput(true); 
        OutputStream outputStream = httpURLConnection.getOutputStream(); 
        BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8")); 
        String post_data = URLEncoder.encode("user_name","UTF-8")+"="+URLEncoder.encode(user_name,"UTF-8")+"&" 
          +URLEncoder.encode("passwords","UTF-8")+"="+URLEncoder.encode(password,"UTF-8"); 
        bufferedWriter.write(post_data); 
        bufferedWriter.flush(); 
        bufferedWriter.close(); 
        outputStream.close(); 
        InputStream inputStream = httpURLConnection.getInputStream(); 
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream,"iso-8859-1")); 
        String result=""; 
        String line=""; 
        while((line = bufferedReader.readLine())!= null) { 
         result += line; 
        } 
        bufferedReader.close(); 
        inputStream.close(); 
        httpURLConnection.disconnect(); 
        return result; 
       } catch (MalformedURLException e) { 
        e.printStackTrace(); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 
      } 
      return null; 
     } 

     @Override 
     protected void onPreExecute() { 
      alertDialog = new AlertDialog.Builder(context).create(); 
      alertDialog.setTitle("Login Status"); 
     } 

     @Override 
     protected void onPostExecute(String result) { 
      alertDialog.setMessage(result); 
      alertDialog.show(); 
     } 

    } 


PHP FILE USED FOR CONNECTION--> 

<?PHP 
require "conn.php"; 
$user_name=$_POST["user_name"]; 
$user_pass=$_POST["passwords"]; 
$mysql_qry="select * from login_db where email_id like '$user_name' and password like '$user_pass';"; 
$result=mysqli_query($conn,$mysql_qry); 

if(mysqli_num_rows($result)>0) 
{echo "Login success";} 

else 
    {echo "Login not success";} 

?> 
+0

вы проходя активность в контексте? или applicationContext? – rushabhshah1693

+0

Вы получаете исключения в logcat? – Pooya

+0

@Pooya Да, я получаю это исключение - «04-15 16: 55: 25.946 6882-7138/com.example.somya.client_feedback_application W/System.err: java.net.ConnectException: не удалось подключиться к/127.0. 0.1 (порт 80): соединение не выполнено: ECONNREFUSED (соединение отклонено) « –

ответ

-1

Для запуска его на genymotion использования эмулятора URL --->

String login_url = `"http://10.0.3.2:8080/login3.php";` 

И для использования андроида устройства ---> `

String login_url = "http://192.168.*.*/login3.php";`