#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 выполняется браузером, и поэтому он знает, как запрашивать имя пользователя / пароль, в то время как более типичная аутентификация на основе форм выполняется сервером, запрашивающим, а затем проверяющим ввод — браузер действительно не понимает, какой запрос делается, он знает, как запрашивать имя пользователя / пароль.просто отправляет некоторые данные формы, а затем сервер отвечает на это некоторыми данными: для 🙂 или :(. Браузер обрабатывает оба содержимого одинаково.