我有一个Android应用程序。我试图向我的网络服务器发出请求,并从服务器上检索响应。看起来很有效。现在我要检查响应是否等于成功,equal()
函数暂时运行良好,似乎已停止工作。
如何正确检查输出是否等于success
?
这就是我的尝试:
if(LOGIN_AUTH.Login(usr, pwd, token).equals("success")) {
// Server returned 'success'
toDashboard();
}else {
// Server returned something else then 'success'
Alert("Error", LOGIN_AUTH.Login(usr, pwd, token));
alert.dismiss();
EditText password = (EditText) findViewById(R.id.login_ip_password);
assert password != null;
password.setText("");
}
我在发现此问题时添加了.trim()
:Android string .equals method not working。我尝试了这个解决方案,但它并不适合我。
在Login()
函数中也修剪了输出:
return postResponse.trim().toString();
由于某种原因,应用程序跳过了检查并触发了Alert()
功能。此警报显示服务器返回success
并且输出中没有找到空格,特殊字符或换行符。
答案 0 :(得分:1)
也许NotContains
正是您所寻找的
equals(Object o)对任何类型的数据返回true / false,取决于内容是否相等!
contentEquals(CharacterSequence cs)才返回true。 您可以在link了解有关差异的更多信息 此外,该功能已得到很好的描述here。
答案 1 :(得分:0)
尝试记录
LOGIN_AUTH.Login(usr, pwd, token)
正在回归。它可能不会返回您认为它返回的内容。
然后,好的做法是将你的平等条件翻转为:
"success".equals(LOGIN_AUTH.Login(usr, pwd, token))
(避免在响应为null时获取NullPointerException) 或用户Android平台的类名为TextUtils:
TextUtils.equals("success", LOGIN_AUTH.Login(usr, pwd, token))
如果仍然无法正常工作,请记录服务器响应(如上所述)并将日志发布到某处。我会相应地更新我的答案。