【问题标题】:How i can know if the conection to server is correct or not?我如何知道与服务器的连接是否正确?
【发布时间】:2016-04-30 08:46:57
【问题描述】:

我进行了登录,但我需要知道与服务器的连接何时失败 ,这是我的按钮事件

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


        }
    });

这是我的服务器响应的异步任务

 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 之前保留的对象

【问题讨论】:

  • 你只会得到一个例外
  • 如果连接失败,请在 try catch 语句中处理,在 catch 语句中处理
  • 但是我需要打印一个 toast 到服务器的连接失败并且应用程序没有停止,并且没有打印位置
  • 在 catch 语句中只打印例如:return "failed" 而不是在你的 onpostexecute 函数中简单地检查写一个 if 条件来检查 if result="failed"
  • 感谢它的正确 :D

标签: java android android-asynctask androidhttpclient


【解决方案1】:

这应该可以工作

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

【讨论】:

  • 非常感谢你是真的在看:D
猜你喜欢
  • 2014-03-13
  • 1970-01-01
  • 1970-01-01
  • 2012-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多