Рестлет HTTP_DIGEST авторизации в андроиде
Возникла следующая проблема с авторизацией HTTP_DIGEST через платформу Restlet на Android.
05-20 18: 39: 14.623: W / System.err (4584): схема вызова HTTP_DIGEST не поддерживается механизмом рестлета. 05-20 18:39:17.498: W/System.err(4584): Не удалось найти какого-либо помощника, поддерживающего схему вызова HTTP_Digest.
Код детали, который выполняется на клиенте и выдает ошибку выше
clientResource =new ClientResource("http://example.com/position");
try{
clientResource.wrap(MailResource.class);
ChallengeResponse challengeResponse = new ChallengeResponse(ChallengeScheme.HTTP_DIGEST,
"1671046999",
"tiger");
clientResource.setChallengeResponse(challengeResponse);
clientResource.get();
}
catch (Exception e)
{
e.printStackTrace();
}
Проверено, что ресурс через браузер и авторизация вроде бы нормально.
Любые советы?:)
Google не предлагает ничего полезного.
Ура!
1 ответ
Во-первых, вы должны добавить файл jar org.restlet.ext.crypto.jar из версии Restlet Android в вашу папку libs. Но вы, вероятно, уже сделали это. К сожалению, механизм автоматического обнаружения Restlet для соединителей и преобразователей, предоставляемых как расширения, не работает должным образом в Android. Это связано с тем, что файлы jar перепаковываются в файле apk и теряют свои метаданные. Таким образом, вам придется вручную настроить используемые вами расширения, например, поддерживающие аутентификацию HTTP Digest.
Engine.getInstance().getRegisteredAuthenticators().add(new HttpDigestHelper());
Я смог воспроизвести вашу проблему, и эта строка кода исправила ее.