Search code examples
javaandroidandroid-asynctaskandroidhttpclient

How i can know if the conection to server is correct or not?


I make a login but i need know when the conection to server is fail ,this is my event of button

 login.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            usuario=(EditText)findViewById(R.id.etUsuario);
            contrasena=(EditText)findViewById(R.id.etContrasena);
            usuario_ws = usuario.getText().toString();
            pass_ws =  contrasena.getText().toString();

            new HttpAsyncTask().execute(GET());


        }
    });

and this is my asynctask for the response of my server

 private class HttpAsyncTask extends AsyncTask<String, Void, String> {

    @Override
    protected String doInBackground(String... params) {

        return GET();

    }
    // onPostExecute displays the results of the AsyncTask.
    @Override
    protected void onPostExecute(String result) {
        //   Toast.makeText(getBaseContext(), "Received!", Toast.LENGTH_LONG).show();
        //  etResponse.setText(result);
        Integer respuesta_ws = Integer.valueOf(result);

        if (respuesta_ws>=1){
            sesionIn();
        }
        else if (respuesta_ws==0){
            sesionFail();
        }


    }
}
public String GET() {

    String url = "http://"+ippref+":8080/WSAppInventario/webresources/inventario.users/Login/"+usuario_ws+"/"+pass_ws+"";
    String result = "";
    BufferedReader inStream = null;
    try {
        HttpClient httpClient = new DefaultHttpClient();
        HttpGet httpRequest = new HttpGet(url);
        HttpResponse response = httpClient.execute(httpRequest);
        inStream = new BufferedReader(
                new InputStreamReader(
                        response.getEntity().getContent()));

        StringBuffer buffer = new StringBuffer();
        String line = "";
        //String NL = System.getProperty("line.separator");
        while ((line = inStream.readLine()) != null) {
            buffer.append(line);
        }
        inStream.close();
        result = buffer.toString();
        respuesta_ws = Integer.valueOf(result);
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return result;
}

The string ippref It is an object to keep before SharedPreferences


Solution

  • this should work

    private class HttpAsyncTask extends AsyncTask<String, Void, String> {
    
    @Override
    protected String doInBackground(String... params) {
    
        return GET();
    
    }
    // onPostExecute displays the results of the AsyncTask.
    @Override
    protected void onPostExecute(String result) {
        //   Toast.makeText(getBaseContext(), "Received!", Toast.LENGTH_LONG).show();
        //  etResponse.setText(result);
    
        if (result=="failed"){
           sesionFail();
        }
        else{
            sesionIn();
        }
    
    
    }
    }
    public String GET() {
    
    String url = "http://"+ippref+":8080/WSAppInventario/webresources/inventario.users/Login/"+usuario_ws+"/"+pass_ws+"";
    String result = "";
    BufferedReader inStream = null;
    try {
        HttpClient httpClient = new DefaultHttpClient();
        HttpGet httpRequest = new HttpGet(url);
        HttpResponse response = httpClient.execute(httpRequest);
        inStream = new BufferedReader(
                new InputStreamReader(
                        response.getEntity().getContent()));
    
        StringBuffer buffer = new StringBuffer();
        String line = "";
        //String NL = System.getProperty("line.separator");
        while ((line = inStream.readLine()) != null) {
            buffer.append(line);
        }
        inStream.close();
        result = buffer.toString();
        respuesta_ws = Integer.valueOf(result);
    } catch (Exception e) {
    
        e.printStackTrace();
        return "failed";
    }
    return result;
    }