0

我面临一个无法正确读取 servlet 响应的奇怪问题。

我的码头网络服务器上的 servlet 返回如下数据:

resp.setStatus(HttpServletResponse.SC_OK);
resp.setContentType("text/plain");
resp.setContentLength(1024);
resp.getWriter().write("DeviceAndNumberAlreadyRegistered");

我的 android 应用程序读取这样的响应:

InputStream is = httpEntity.getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(
        is, "iso-8859-1"), 8);
StringBuilder sb = new StringBuilder();
String line = null;
 while((line=reader.readLine())!=null){
 sb.append(line);
 }
is.close();
return sb.toString();

在 Logcat 上打印该值,我可以看到响应值(sb.toString())与我的 servlet 返回的值相同(“DeviceAndNumberAlreadyRegistered”)。我还使用 trim() 验证了没有空格。

问题是,如果我尝试在 IF 块中比较我的 android 应用程序中的值,它不会将其验证为 TRUE,即以下代码返回 false:

if(result == "DeviceAndNumberAlreadyRegistered")

我的 servlet 返回什么文本并不重要,它只是在 IF 块中不会验证为 TRUE。这是为什么?

4

1 回答 1

1

使用 equels 检查字符串。

“==”只在它们是同一个对象时才返回true,我猜?

于 2013-09-20T02:44:22.493 回答