我面临一个无法正确读取 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。这是为什么?