Я пытаюсь войти на веб-страницу, отправив имя пользователя/пароль, используя метод post. Мне удалось сделать это успешно, но то, что я пытаюсь достичь, - это знать, успешно ли я зарегистрирован или нет (программно в Java). Мой подход состоял в том, чтобы получить источник html-страницы в виде строки и начать искать слово "Записан как", чтобы определить, успешно ли завершен процесс регистрации или нет. Я попытался сделать это и показать строку в Logcat, но строка кажется слишком длинной для отображения.
Так возможно ли это? и если да, то это единственный подход к достижению требуемого?
Благодарю.
обычно, когда вы делаете сообщение http, вы делаете это с задачей async, если это так, то вам нужно переопределить метод, называемый onpostexecute, который позволит вам выполнить обработку. и изменить (обычно статический) флаг, чтобы узнать пользователя регистрируется сейчас.
Из вашего httpClient вы можете проверить, был ли установлен файл cookie (при условии, что вы используете файлы cookie для аутентификации ваших пользователей), вы получаете список файлов cookie из этого кода:
List<Cookie> cookies = client.getCookieStore().getCookies();
и проверьте, существует ли файл cookie
Когда ваше приложение Android отправляет данные на сервер, сервер должен отправить ответ.
Формат JSON
очень распространен в наши дни.
PHP
- хороший инструмент для управления вашими данными и ответами.
Вот пример того, как вы это сделаете
$response = array();
if($LoginSuccessfull){
$response = array('success'=> true, 'message'=> 'logged in successfully';
}else{
$response = array('success'=> false, 'message'=> 'loggin failure';
}
echo json_encode($response);
Если вы используете ASyncTask для выполнения сетевых вызовов, вы можете вернуть строку, эта строка будет содержать ответ, который вы получили от сервера, к которому вы пытаетесь подключиться. Это все работает в фоновом режиме через doInBackground()
В функции onPostExecute()
которая выполняется в основном потоке, так что вы можете проверить, содержит ли строка текст для успешного входа в систему и неудачный логин.
if (login.contains("success") {
textView.setText("You have logged in");
else if (login.contains("failed") {
textView.setText("Login failed, please try again later");
HttpPost вы должны вернуть что-то с сервера. Вы эту информацию делаете, что вам нужно. Лучший способ сделать это - заставить ваш сервер вернуть ответ JSON, который вы можете проанализировать, а затем получить детали