Проверьте, правильно ли имя пользователя / пароль из HTTP-ответа в Android / Java

#java #android #http

#java #Android #http

Вопрос:

В Android / Java у меня есть требование, чтобы с именем пользователя и паролем я заходил на определенный сайт и получал ответ.

Я в состоянии получить такой ответ. Но из этого ответа, как я узнаю, ввел ли я правильное имя пользователя / пароль. Поскольку я получаю ответ как для правильного, так и для неправильного имени пользователя / пароля.

У меня с собой есть ответ и печенье. Из них, как я могу узнать, правильно ли я ввел имя пользователя / пароль.

Это код, который я использую.

 HttpGet httpGet = new HttpGet(uri);
httpGet.addHeader("User-Agent", USER_AGENT);
HttpResponse response = httpClient.execute(httpGet, httpContext);
 

Здесь response я получаю одинаковое содержимое для правильного и неправильного имени пользователя / пароля

Комментарии:

1. Как для правильного, так и для неправильного имени пользователя / пароля вы получаете один и тот же код ответа с сервера?

2. Вы не предоставляете достаточно информации, чтобы кто-либо мог вам помочь — мы не можем видеть через ваше плечо, поэтому мы понятия не имеем, какую информацию вы получаете обратно, из которой можно определить хороший / плохой вход. Если URL-адрес страницы совпадает для успеха / неудачи, вам, вероятно, потребуется проанализировать / grep возвращенный HTML для известных сообщений об ошибках / успехах.

3. @saichandra557 Это не код состояния, который вы бы использовали для этого — это содержимое ответа. Код состояния указывает на успех / ответ самого HTTP-вызова, а не на то, как приложение реагирует на сбои входа в систему.

4. @saichandra557 Содержание ответа, другими словами, «материал, отображаемый на странице браузера», «просмотр источника», HTML.

5. @saichandra557 И я говорю, что информация почти наверняка содержится не в заголовках ответов, а в теле ответа. Подробности см. во введении HttpClient.

Ответ №1:

У сервера есть своя логика для обработки / правильного имени пользователя / пароля, но обычно это делается через тело ответа, а не заголовки ответа. Код ответа 401 используется примерно единственный раз, когда сайт использует учетные данные домена (NTML), и либо они не были предоставлены, либо они были неверными.

Разница в том, что аутентификация NTML выполняется браузером, и поэтому он знает, как запрашивать имя пользователя / пароль, в то время как более типичная аутентификация на основе форм выполняется сервером, запрашивающим, а затем проверяющим ввод — браузер действительно не понимает, какой запрос делается, он знает, как запрашивать имя пользователя / пароль.просто отправляет некоторые данные формы, а затем сервер отвечает на это некоторыми данными: для 🙂 или :(. Браузер обрабатывает оба содержимого одинаково.