2013-05-20 25 views
1

通過Android上的Restlet框架獲得HTTP_DIGEST授權的以下問題。Android中的Restlet HTTP_DIGEST授權

05-20 18:39:14.623:W/System.err(4584):Restlet引擎不支持挑戰方案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(); 
} 

部分代碼進行覈對通過瀏覽器,並授權該資源似乎是罰款。

任何建議?:)

谷歌沒有提出任何可用的東西。

乾杯!

回答

0

首先,您應該將Restlet Android版本的jar文件org.restlet.ext.crypto.jar添加到您的libs文件夾中。但是你可能已經做到了。不幸的是,作爲擴展提供的連接器和轉換器的Restlet自動發現機制在Android中無法正常工作。這是因爲jar文件在apk文件中被重新打包並且丟失了它們的元數據。因此,您必須手動配置您使用的擴展,如支持HTTP Digest身份驗證的擴展。

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

我能夠重現您的問題,並且這行代碼修復了它。