HttpURLConnection因错误的凭据而挂起(冻结)

时间:2016-10-27 22:16:10

标签: java android httpurlconnection

我的应用程序想要检查用户的登录凭据是否有效以访问Web API。 为此,我使用AsyncTask方法实现了这一点。

这是doInBackground()实现。

protected Boolean doInBackground(String... params) {
        HttpURLConnection urlConnection = null;
        URL url = null;
        try {
            url = new URL(params[0]);
            urlConnection = (HttpURLConnection) url.openConnection();
            urlConnection.setRequestMethod("GET");
            urlConnection.setDoOutput(true);
            urlConnection.setDoInput(true);
            urlConnection.setConnectTimeout(1000);
            urlConnection.setReadTimeout(1000);
            Authenticator.setDefault (new Authenticator() {
                protected PasswordAuthentication getPasswordAuthentication() {
                    return new PasswordAuthentication (user, password.toCharArray());
                }
            });

            return (HttpURLConnection.HTTP_OK == urlConnection.getResponseCode());
        } catch (SocketTimeoutException e) {
        } catch (IOException e){
        }
        return false;
    }

当我输入正确的用户凭据时,它可以正常工作。但是,当我输入错误的凭据时,它将保持挂在urlConnection.getResponseCode()(不抛出任何异常)。 我试图在其间添加urlConnection.connect(),但我没有找到成功。 我在清单中设置了互联网访问。

0 个答案:

没有答案