Я выполняю запрос GET:
HttpURLConnection urlConnection = (HttpURLConnection)url.openConnection();
urlConnection.setConnectTimeout(CONNECT_TIMEOUT);
urlConnection.setReadTimeout(READ_TIMEOUT);
urlConnection.connect();
к этому времени учетные данные уже были установлены с:
Authenticator.setDefault(new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(loginNameString, passwordString.toCharArray());
}
});
Все работает нормально, когда я предоставляю хорошие учетные данные (т.е. имя пользователя и пароль).
Что происходит с соединением, если предоставлены неверные учетные данные? Например, если я намеренно предоставляю неверные учетные данные и звоню urlConnection.getResponseCode()
сразу после urlConnection.connect()
, мое приложение в конечном итоге истекает, и мне приходится принудительно закрывать. Почему это?
** Править. Насколько я могу судить, HttpURLConnection просто пытается подключиться (даже с ограниченным временем ожидания), когда учетные данные неверны. (Я знаю это, потому что я добавил строку Log.v("Authentication", "Calling...");
в моем методе getPasswordAuthentication()
перед возвратом). Я хочу, чтобы соединение перестало работать, если оно не работает из-за неверных учетных данных!