我面临一个奇怪的问题,即无法正确读取servlet响应。
我的jetty webserver上的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。那是为什么?
答案 0 :(得分:1)
使用equels检查字符串。
“==”只有当它们是同一个对象时才返回true,我猜?