检查字符串在Android/Java中是否等于
我有一个Android应用程序。我正在尝试向我的Web服务器发出请求,并从服务器检索响应。它似乎起作用了。现在我正在检查响应是否等于success,检查字符串在Android/Java中是否等于,java,android,Java,Android,我有一个Android应用程序。我正在尝试向我的Web服务器发出请求,并从服务器检索响应。它似乎起作用了。现在我正在检查响应是否等于success,equal()函数在一段时间内运行良好,似乎停止了工作 如何正确检查输出是否等于success 这就是我尝试过的: if(LOGIN_AUTH.Login(usr, pwd, token).equals("success")) { // Server returned 'success' toDashboard(); }else {
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()
,因为我发现了这个问题:。我试过那个解决方案,但对我不起作用
在Login()
函数中,输出也如下所示:
return postResponse.trim().toString();
由于某种原因,应用程序跳过了检查并触发了Alert()
函数。此警报向我显示服务器返回了success
,并且在输出中未找到空格、特殊字符或换行符
尝试记录什么
LOGIN_AUTH.Login(usr, pwd, token)
他回来了。它可能不会返回您认为它返回的内容
然后,最佳做法是将equals条件翻转为:
"success".equals(LOGIN_AUTH.Login(usr, pwd, token))
(避免在响应为null时获取NullPointerException)
或用户Android平台名为TextUtils的类:
TextUtils.equals("success", LOGIN_AUTH.Login(usr, pwd, token))
如果它仍然不工作,请记录服务器响应(如上所述),并将日志发布到某个位置。我会相应地更新我的答案。也许。contentEquals()
就是你要找的。equals(对象o)在任何类型的数据上返回true/false,这取决于内容是否相等 contentEquals(CharacterSequence cs)在且仅当此字符串表示与指定的StringBuffer相同的字符序列时返回true。 您可以在此阅读更多有关差异的信息。
此外,该函数描述得很好。然后
登录\u AUTH.登录(usr、pwd、token)
不会返回您认为的结果is@Blobonat从服务器接收的“纯文本”。在我的截图中,它返回“成功”。在Android监视器中,我还制作了一个记录器。您要调用Login()
两次。服务器输出可能发生第二次更改。尝试将返回值存储在字符串中并调试该值。您是否可以尝试string txt=LOGIN\u AUTH.LOGIN(usr、pwd、token)然后使用txt.equals(“success”)
?尝试使用Log.d()检查它返回的内容。我个人认为你的.equals()没有任何问题。正如@Blobonat所说,问题可能发生在请求部分。连接到服务器时出现问题,或者请求仍在另一个线程上运行,您在获取结果之前检查结果。它仍然会向我提供带有错误和消息的AlertDialogsuccess
post Log.d函数的输出,您在其中记录LOGIN\u AUTH.LOGIN(usr、pwd、token)的参数函数和该函数返回的值。我做了一个测试:首先,我输入了一个错误的密码,Log.d()
向我显示了输出,在我输入了正确的密码后,Log.d()
没有显示任何内容。换句话说,如果没有显示任何内容,它就不会触发allIt。这可能是因为它实际上显示了一个空字符串“”。您需要发布Log.d的实际输出,而不仅仅是您的解释,这样我们才能帮助您。代码片段也会很好。注意,出于某种原因,我请求记录原始服务器响应以及解析的响应。很抱歉,如果你不发布我建议的内容,我们将无法为你提供更多帮助。。okhttp3存储了一些缓存,我无法清除此缓存。因为有时它返回success
,然后在某个时刻返回其他内容。。