0

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")) の条件は真でなければなりません。体を達成するためのアイデアや提案を私に与えてください...........事前に感謝します

4

3 に答える 3

1

sb.append(line + "\n");「success」を「success\n」に変更すると、「success if(result.equals("success")){\n」が「success」と一致しないため失敗します。

于 2012-08-30T14:05:42.600 に答える
1

Android コードでは、php から受け取った結果に末尾の LineFeed を追加します。

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

したがって、実際には「成功」を「成功\n」と比較しますが、これは誤りです。

于 2012-08-30T14:05:46.207 に答える
0

以前に投稿された回答 (正しい) に加えて、HTTP には、あなたがしようとしていることを実行するためのメカニズムが含まれていることを指摘したいと思います。

HTTP 認証では、標準の HTTP リターン コード (認証が成功した場合は 200、認証が失敗した場合は 401) を使用し、既存のシステムを使用してその部分を処理できます (ほとんどのフレームワークが提供します)。

また、サーバーから送り返すメッセージの残りの部分から認証を分離し、サーバーからヘッダーを受信するとすぐに認証ステータスを比較することもできます。

于 2012-08-30T14:18:22.013 に答える