我得到了从php到android的响应,见下文.php
<?php
$username = $_POST[username];
$password = $_POST[password];
if($username == "himm")
{
if($password == "rangde"){
echo "success" ;
}
else{
echo "passwor is wrong.";
}
}
else
{
echo "fail";
}
?>
我在android的logcat窗口取得了成功。但是在android中我已经进行了如下比较,
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 + "\n");
}
is.close();
result = sb.toString();
Log.v("","Result : "+result);
Log.v("","this is Result: "+result.equalsIgnoreCase("success"));
if(result.equals("success")){
Log.v("","Login successfully......");
}
else{
Log.v("","Fail to login......");
}
但在logcat窗口中,我看到“登录失败”消息。 Php发送响应为“成功”但是哪种类型? 这里if(result.equals(“success”))的条件应为true。请任何机构给我提出想法或建议以实现这些..........提前谢谢
答案 0 :(得分:1)
sb.append(line + "\n");
将“成功”修改为“成功\ n”,因此if(result.equals("success")){
失败,因为'success \ n'与'success'不匹配。
答案 1 :(得分:1)
在你的Android代码中,你将一个尾随LineFeed添加到你从php收到的结果:
sb.append(line + "\n");
所以你真的要比较成功&#39;成功\ n&#39;这是假的。
答案 2 :(得分:0)
除了之前发布的答案(这是正确的)之外,我想指出HTTP包含执行您要执行的操作的机制。
Http身份验证允许您使用标准的Http返回代码(成功时为200,如果身份验证失败,则为401),并使用现有系统来处理该部分(大多数框架将提供此类代码)。
它还允许您将身份验证与从服务器发回的消息的其余部分分开,并在收到服务器的标头时立即比较身份验证状态。