如果声明没有返回结果

时间:2012-03-06 20:47:20

标签: java android

我发送用户名和密码到网站进行身份验证,毕竟说完了,我已经从服务器检索了结果,我已将结果放在变量中叫做“回应”#39;到目前为止一切正常

response = sb.toString();
Toast.makeText(this,"Returned Value: "+ response,0).show();

上面Toast中看到的值是php脚本返回的值。我使用了有效用户和无效用户,并且上面显示的Toast显示了服务器返回的正确值(即" Good Login"或#34; Login Failed")。我想测试这些结果,这样我就可以开始适当的活动了,所以我已经进行了一些测试"如果"语句

if("Good Login".equals(response)){
 Toast.makeText(this, "Registered User" + mUsername, 0).show();
 }
if("Login Failed".equals(response)){
 Toast.makeText(this, "Sorry You're Not A Registered Subscriber",0).show();
 }

我从任何一个中得不到任何结果。 我也试过了

if(response.equals("Good Login")){
 Toast.makeText(this, "Registered User" + mUsername, 0).show();
 }
if(response.equals("Login Failed")){
 Toast.makeText(this, "Sorry You're Not A Registered Subscriber",0).show();
 }

结果相同。不知道还有什么可以测试。有没有更好的方法来测试成功或失败?

由于

3 个答案:

答案 0 :(得分:2)

调试(或打印)response变量的确切值。

可能存在空格,因此您可能需要response = response.trim()

答案 1 :(得分:0)

  1. 我会返回一个整数错误代码而不是一些字符串来检查错误响应。
  2. 确保返回正确的大小写,否则请使用equalsIgnoreCase

答案 2 :(得分:0)

Java字符串等于函数是完全大小写/间隔敏感的比较。

因此,如果:response = "Good Login "或者如果它包含额外空格或非打印字符,那么它将无法通过测试。

剥离所有空格,甚至是内部空格都是个好主意。 Here's关于这样做的问题。在进行实际比较时也使用String.equalsCaseInsesitive()