Android并响应错误的身份验证凭据

时间:2011-08-13 15:40:13

标签: android authentication

我正在做类似的事情:

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

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

url接收JSON字符串。

当我输入的身份验证凭据正确并使用

设置时,此方法正常
Authenticator.setDefault(new Authenticator() {
    protected PasswordAuthentication getPasswordAuthentication() {
        return new PasswordAuthentication(loginNameString, passwordString.toCharArray());
    }
});

然而,当我故意提供不良凭证时,请求当然会失败,但应用程序最终会超时;我在哪里以及如何处理此事件以通知用户并将控制权返回给她 - 是否有钩子?

** 修改 - 我将System.out.println("hello!");放入getPasswordAuthentication()覆盖中;即使在由于凭据错误而导致多次失败后,也会反复调用此方法。

1 个答案:

答案 0 :(得分:0)

我处理这种连接/认证问题的方法是用一个:

包围它们
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