从PHP获取android中的响应


Getting response in android from PHP

我正在从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窗口中获得了成功。但在安卓系统中,我做了如下比较,

  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。请任何机构给我实现目标的想法或建议。。。。。。。。。。提前感谢

sb.append(line + "'n");将"success"修改为"success''n",因此if(result.equals("success")){会失败,因为"success''n'"与"success'"不匹配。

在您的android代码中,您将从php:收到的结果添加一个尾随的LineFeed

sb.append(line + "'n");

所以你实际上把"成功"比作"成功",这是错误的。

除了之前发布的答案(这些答案是正确的)之外,我想指出的是,HTTP包含了一些机制来做你正在尝试做的事情。

Http身份验证允许您使用标准的Http返回代码(成功时为200,身份验证失败时为401),并使用现有系统来处理该部分(大多数框架都会提供这样的代码)。

它还允许您将身份验证与从服务器发回的其余消息分开,并在收到来自服务器的标头后立即比较身份验证状态。