我正在做类似的事情:
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()
覆盖中;即使在由于凭据错误而导致多次失败后,也会反复调用此方法。
答案 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