ログインページを機能させることができなかったようです。明らかに間違っていることがわかっているのに、ユーザー名/パスワードが間違っていると表示され続けました。そこで、log.v のデバッグとポップを開始したところ、興味深いことがわかりました。「//<--- THIS LINE!」という行を探します。
class LogMeIn extends AsyncTask<String, Void, String> {
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://www.fakesite.com/login.php");
protected String doInBackground(String... urls) {
try {
username = un.getText().toString();
password = pw.getText().toString();
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(
2);
nameValuePairs
.add(new BasicNameValuePair("username", username));
nameValuePairs
.add(new BasicNameValuePair("password", password));
post.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = client.execute(post);
String res = inputStream(response.getEntity().getContent())
.toString();
Log.v("RESPONSE", res); // <--- THIS LINE!
// if username and password are valid, launch main activity
if (res.toString() == "1") {
Intent logIn = new Intent(getApplicationContext(), Main.class);
startActivity(logIn);
}
// send the user a message saying the login failed
else {
runOnUiThread(new Runnable() {
public void run() {
pw.setText("");
fail.setText(R.string.fail);
}
});
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
protected void onPostExecute(String file_url) {
}
}
private StringBuilder inputStream(InputStream input) {
String line = "";
StringBuilder total = new StringBuilder();
BufferedReader read = new BufferedReader(new InputStreamReader(input));
try {
while ((line = read.readLine()) != null) {
total.append(line);
}
} catch (Exception e) {
e.printStackTrace();
}
return total;
}
今、私は「true」または「1」のような応答を期待していました。それに基づいて、ユーザー名/パスワードが正しいことがわかり、メインのアクティビティを開始して、人生は続きます。しかし、私が戻ってきたのはこれでした
05-18 15:41:27.620: V/RESPONSE(27641): <!--<script>window.location.href="";</script>--> <!-- <meta http-equiv="refresh" content="0;url="> -->
さらに、URL の末尾にある /login.php を削除して " http://www.whatever.com " とすると、同様の html の壁がずっと長くなります。
言うまでもなく、私はこれを間違っており、ユーザー名/パスワードが正しいかどうかに関係なく、ログインに失敗します。どこで私は間違えましたか?私はそれを理解できないようです。