2013-09-24 86 views
1
if (resEntity != null) { 
    res=EntityUtils.toString(resEntity); 
    Log.i("RESPONSE",res); 
} 

xc=res.equals("true"); 
Log.i("xc",String.valueOf(xc)); 

if(xc) { 
    Log.i("Yes","1"); 
} 
else { 
    Log.i("no","0"); 
} 

上面是我的代码,我发送一个post请求给我们公司的服务器来检查一个文件,如果文件存在,它会返回true。我提供我的logcat。string.equals()返回错误的值?

09-24 11:20:19.570: I/url for checking update(3050): http://www.digitalmarketingbox.com/webtool/playerupdate.php 
09-24 11:20:33.789: I/RESPONSE(3050): true 
    09-24 11:20:33.789: I/xc(3050): false 

,你可以看到,返回的响应从服务器是真实的,我也比较它与真实的,那么,为什么等于()函数返回false,请帮帮我,还是我在这里做什么了吗?

+3

响应之后是否有空白? –

+0

请在发布代码时修正您的缩进和空行 - 此代码难以阅读。 –

+0

如果你记录'res.length()',你会得到什么? –

回答

3

我认为最可能的问题是res中的空白。试试这个:

res=EntityUtils.toString(resEntity).trim(); 
+0

确定这个工作我会接受这个答案非常感谢你能解释我简而言之什么修剪 – newkid

+0

检查API的[字符串。 trim()](http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#trim%28%29) – Jayamohan

+0

@newkid - 'trim()'删除所有前导和尾随字符串中的空格并将结果作为新字符串返回。 –

0

看来你正在获得boolean响应,并且您试图使用字符串equals()方法进行比较,这不是正确的做法。

编辑:由于res实际上是一个字符串值,因此您需要确保它实际上包含“true”而没有任何额外的空格。

+0

考虑到res是从'toString'调用中获得的,所以很难看到'res'是一个布尔值。 –

+0

正如你所看到的,我已经将它更改为代码中的字符串 – newkid

+0

@newkid你是否试图打印res的值? –

0

雅MEY是你的空间,为什么结果不是对你有利所以用修剪去除空间,然后使用像塔

xc=res.trim().equals("true"); 
if(xc) 
     { 
     Log.i("Yes","1"); 
     } 
     else 
     { 
      Log.i("no","0"); 

     } 
+1

在声明中没有比较;这是一项任务。 –

+0

xc是布尔值res,“true”是字符串。每个人都给出相同的答案,但我认为这是不正确的。 – user2259824

+0

xc是布尔型,请仔细阅读代码 – newkid

-1

您可以检查这个样子。

if(res.equals("true") 
{ 
    Log.i("Yes","1"); 
} 
else 
{ 
    Log.i("No","0"); 
} 
+0

这是怎么产生不同的东西? –

+0

请让我知道它是否有效 – Gowri

+0

它没有任何不同,我也试过这之前,控制去其他,但如果块应该执行 – newkid