Я пытаюсь подключить свое приложение Android к серверу IIS с использованием класса HttpUrlConnection.HttpUrlConnection не находит вызов NTLM на Android
Мой сервер требует, чтобы пользователь аутентификации, поэтому он посылает следующий вызов клиенту:
WWW-Authenticate: Negotiate
WWW-Authenticate: NTLM
Моя проблема заключается в том, что HttpURLConnection не кажется, чтобы разобрать его. Таким образом, getPasswordAuthentication() никогда не вызывает вызов, и он возвращает исключение IOException «не обнаруженные проверки подлинности».
Вот мой код:
Authenticator.setDefault(new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("myUsername", "myPassword".toCharArray());
}
});
URL url = new URL(myUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Accept-Encoding", "gzip");
conn.setRequestProperty("Accept-Charset", "UTF-8");
conn.setRequestProperty("Accept", "*/*");
conn.setRequestProperty("Connection", "close");
conn.setDoOutput(true);
conn.setDoInput(true);
try
{
conn.connect();
status_code = conn.getResponseCode();
}catch (IOException e) {
...
}
Я действительно начинаю думать, что NTLM вызов просто не поддерживается HttpURLConnection. Я видел некоторые библиотеки, которые, похоже, выполняют эту работу, но я бы предпочел не использовать внешние библиотеки.
Может кто-нибудь подтвердить, возможно ли или нет, чтобы HttpUrlConnection обрабатывал вызов NTLM без внешних библиотек?
[пример] (http://stackoverflow.com/a/34321230/2073804) с использованием HttpURLConnection и jcifs. – ron190
Если вы нашли какое-либо решение, пожалуйста, shrare – Sarry