2013-05-20 2 views
1

Появилась следующая проблема с авторизацией HTTP_DIGEST через платформу Restlet на Android.Restlet HTTP_DIGEST авторизация в android

05-20 18: 39: 14.623: W/System.err (4584): Схема вызова HTTP_DIGEST не поддерживается движком Restlet. 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 не воспитан ничего полезного.

Cheers!

ответ

0

Во-первых, вы должны добавить файл jar org.restlet.ext.crypto.jar из издания Restlet Android в папку с вашими файлами. Но вы, наверное, уже это сделали. К сожалению, механизм автоматического обнаружения Restlet для соединителей и конвертеров, предоставляемых в качестве расширений, не работает должным образом в Android. Это связано с тем, что банки упакованы в файл apk и теряют свои метаданные. Таким образом, вам придется вручную настроить расширения, которые вы используете, например, поддерживающие аутентификацию HTTP Digest.

Engine.getInstance().getRegisteredAuthenticators().add(new HttpDigestHelper()); 

Я смог воспроизвести вашу проблему, и эта строка кода исправила ее.

Смежные вопросы