2012-03-06 17 views
0

私は認証目的のためにウェブサイトにユーザー名とパスワードを送信していますが、すべてのことが終わってサーバーから結果を取得した後、結果を変数'response'この時点まで、すべて正常に動作しています。ifステートメントが結果を返さない

response = sb.toString(); 
Toast.makeText(this,"Returned Value: "+ response,0).show(); 

上記のToastに記載されている値は、PHPスクリプトによって返される値です。有効なユーザーと無効なユーザーの両方を使用しています。上に表示されたToastには、サーバーから返された正しい値(「ログインが良好」または「ログインに失敗しました」)が表示されます。文

if("Good Login".equals(response)){ 
Toast.makeText(this, "Registered User" + mUsername, 0).show(); 
} 
if("Login Failed".equals(response)){ 
Toast.makeText(this, "Sorry You're Not A Registered Subscriber",0).show(); 
} 

私は1つのいずれかから何を得ていないよ「場合は」私は、私はいくつかのテストに置かれている適切な活動を開始することができますので、私はそれらの結果をテストします。 私も試しました

if(response.equals("Good Login")){ 
Toast.makeText(this, "Registered User" + mUsername, 0).show(); 
} 
if(response.equals("Login Failed")){ 
Toast.makeText(this, "Sorry You're Not A Registered Subscriber",0).show(); 
} 

同じ結果で、他に何をテストするかわからない成功か失敗かをテストする良い方法はありますか?

おかげ

+1

返された**応答**が何であるかを確認するためにコードをデバッグしましたか? – bschultz

+1

あなたは実際の応答の値をチェックしようとしましたか? 「良いログイン」または「ログイン失敗」のいずれかですか?それはトリムされていない文字列ですか? 「良いログイン」や「ログイン失敗」など –

+0

エンコードの問題かもしれないが、この質問を見て:http://stackoverflow.com/questions/4210713/equal-and-equalsignorecase-return-false-for-equal-strings – MByD

答えて

2

デバッグ(または印刷)response変数の正確な値。

あなたがresponse = response.trim()

+0

トリム()でしたが、トリムするとすべてが機能しました ありがとう – Hank

+0

@ハンク。答えは受け入れられたものとして記入してください。 – Bozho

+0

@ Hank - あなたの 'Toast.makeText(this、"戻り値: "+レスポンス、0).show();のように出力すると、出力文字列を何かで囲む - 大括弧で囲まれた 'Toast.makeText(this、"戻り値:["+レスポンス+"] "、0).show();'を使用すると、空白。 –

0
  1. を持っている必要があるかもしれませんので、私はエラー応答を確認するために、整数のエラー・コードではなく、いくつかの文字列が返されます、空白があると思われます。
  2. そうでない場合はJavaの文字列は、関数が完全に機密を比較する場合/間隔で等しくequalsIgnoreCase
0

を使用し、あなたが正しい場合に戻ってきていることを確認してください。

したがって:response = "Good Login "または余分なスペースや非印字文字が含まれている場合は、テストに失敗します。

すべての空白は、内部のものであっても削除することをお勧めします。 Here'sそのことについてはまったくの質問です。その実際の比較を行うときにもString.equalsCaseInsesitive()を使用してください。

関連する問題