2016-01-23 132 views
1

我做一個登錄,但我需要知道什麼時候該連接如與服務器的失敗 ,這是我的按鈕我如何知道服務器的連接是否正確?

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


     } 
    }); 

的情況下,這是我對我的服務器響應的AsyncTask

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; 
} 

字符串ippref 這一個目的是要保持SharedPreferences

+0

你會簡單地得到一個異常 – has19

+0

在你嘗試catch語句,如果連接失敗只是處理,在catch語句 – has19

+0

但我需要舉杯打印到連接失敗,而不是應用程序停止服務器,沒有打印的地方 –

回答

0

在此之前應該工作

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; 
} 
+0

非常感謝你真正在尋找的東西:D –

+0

歡迎你。 。 。 – has19

相關問題