Определение успешного входа в систему путем отправки учетных данных методом POST

0

Я пытаюсь войти на веб-страницу, отправив имя пользователя/пароль, используя метод post. Мне удалось сделать это успешно, но то, что я пытаюсь достичь, - это знать, успешно ли я зарегистрирован или нет (программно в Java). Мой подход состоял в том, чтобы получить источник html-страницы в виде строки и начать искать слово "Записан как", чтобы определить, успешно ли завершен процесс регистрации или нет. Я попытался сделать это и показать строку в Logcat, но строка кажется слишком длинной для отображения.

Так возможно ли это? и если да, то это единственный подход к достижению требуемого?

Благодарю.

  • 0
    почему ваш сервер отправляет html, если вы вызываете его из приложения?
Теги:
post
login

4 ответа

0

обычно, когда вы делаете сообщение http, вы делаете это с задачей async, если это так, то вам нужно переопределить метод, называемый onpostexecute, который позволит вам выполнить обработку. и изменить (обычно статический) флаг, чтобы узнать пользователя регистрируется сейчас.

0

Из вашего httpClient вы можете проверить, был ли установлен файл cookie (при условии, что вы используете файлы cookie для аутентификации ваших пользователей), вы получаете список файлов cookie из этого кода:

List<Cookie> cookies = client.getCookieStore().getCookies();

и проверьте, существует ли файл cookie

0

Когда ваше приложение 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);
  • 0
    Дело в том, что я не могу редактировать php-файл, чтобы возвращать ответ json при входе в систему, так как это не мой сервер, и я не могу его контролировать
  • 0
    @ user3091639, пожалуйста, отметьте, что в вашем сообщении, так что, что возвращает служба, вы должны быть в состоянии прочитать этот ответ
0

Если вы используете 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, который вы можете проанализировать, а затем получить детали

Ещё вопросы

Сообщество Overcoder
Наверх
Меню