【发布时间】: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