Android и реагирование на неверные учетные данные - PullRequest
0 голосов
/ 13 августа 2011

Я делаю что-то вроде:

HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
            urlConnection.setConnectTimeout(10*1000);
            urlConnection.setReadTimeout(10*1000);
            urlConnection.setUseCaches(false);

DataInputStream dis = new DataInputStream(urlConnection.getInputStream());

, чтобы получить строку JSON в url.

. Это прекрасно работает, когда введенные мной учетные данные аутентификации верны и установлены с помощью

Authenticator.setDefault(new Authenticator() {
    protected PasswordAuthentication getPasswordAuthentication() {
        return new PasswordAuthentication(loginNameString, passwordString.toCharArray());
    }
});

Тем не менее, когда я намеренно предоставляю неверные учетные данные, запрос, конечно, не выполняется, но приложение в конечном итоге просто перестает работать;где и как я могу обработать это событие, чтобы уведомить пользователя и вернуть ему контроль - есть ли ловушка?

** Правка - я поместил System.out.println("hello!"); в моем getPasswordAuthentication() переопределении;это вызывается снова и снова даже после нескольких сбоев из-за неверных учетных данных.

1 Ответ

0 голосов
/ 13 августа 2011

Мой способ решения этих проблем с подключением / аутентификацией заключается в том, чтобы окружить их:

try 
{
     //your connection attempt
}
catch (Exception e)
{
 //something goes wrong, handling the situation... for example :
     error = true;
}
if (error)
{
     //return control and notify the user, with a toast an alertDialog or whatever
}

Это уродливо, но обычно работает ... у кого-то здесь наверняка есть лучшее решение.

РЕДАКТИРОВАТЬ : Может быть, эта ссылка поможет: http://sites.google.com/site/androidhowto/password-auth-http

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...