HttpsURLConnection Authenticator Ошибка - PullRequest
0 голосов
/ 29 июня 2018

У меня проблемы с методом аутентификации Android.

Этот метод работает и возвращает код 200 (HTTP_OK):

Authenticator.setDefault(new Authenticator() {
                protected PasswordAuthentication getPasswordAuthentication() {
                    return new PasswordAuthentication("admin", "1234".toCharArray());
                }
            });

но чтобы стать динамически я отправил пользовательские значения:

urlConnection = new URL(params[0]);
user = params[1];
pass = params[2];

изменил аутентификацию на:

return new PasswordAuthentication(user, pass.toCharArray())

сделал тест: пользователь / пароль: «тест».

Я хочу получить код 401 (HTTP_UNAUTHORIZED)

когда я отлаживаю и нажимаю f7 / f8, иногда я вижу 401 в коде ответа, но не могу его вернуть, потому что кажется, что он входит в цикл внутри:

httpUrlConnection.getResponseCode();

Вот фрагмент моего кода:

.....    

    httpUrlConnection.setConnectTimeout(2000);
    httpUrlConnection.connect();
    statusCode = httpUrlConnection.getResponseCode(); //debug stop here
    httpUrlConnection.disconnect(); 
} catch (IOException e) {
    e.printStackTrace();
}
return statusCode;

Какие-нибудь советы?

1 Ответ

0 голосов
/ 02 июля 2018

Проблема была на сервере.

Метод аутентификации: "Basic".

Изменил его на "Digest", сервер пытается выполнить аутентификацию только один раз, а не рекурсивно, пока не сможет войти.

Редактировать

Но обратите внимание, потому что

HttpUrlConnection не поддерживает дайджест, как указано здесь

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