Android中的Restlet HTTP_DIGEST授权

时间:2013-05-20 18:33:37

标签: android authorization restlet-2.0 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();
}

通过浏览器和授权检查资源似乎没问题。

任何建议?:)

谷歌没有提出任何可用的东西。

干杯!

1 个答案:

答案 0 :(得分:0)

首先,您应该将Restlet Android版本中的jar文件 org.restlet.ext.crypto.jar 添加到您的libs文件夹中。但是你可能已经这样做了。不幸的是,作为扩展提供的连接器和转换器的Restlet自动发现机制在Android中无法正常工作。这是因为jar文件在apk文件中重新打包并丢失了元数据。因此,您必须手动配置您使用的扩展名,例如支持HTTP摘要式身份验证的扩展名。

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

我能够重现你的问题,这行代码修复了它。