通过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 :(得分:0)
首先,您应该将Restlet Android版本中的jar文件 org.restlet.ext.crypto.jar 添加到您的libs文件夹中。但是你可能已经这样做了。不幸的是,作为扩展提供的连接器和转换器的Restlet自动发现机制在Android中无法正常工作。这是因为jar文件在apk文件中重新打包并丢失了元数据。因此,您必须手动配置您使用的扩展名,例如支持HTTP摘要式身份验证的扩展名。
Engine.getInstance().getRegisteredAuthenticators().add(new HttpDigestHelper());
我能够重现你的问题,这行代码修复了它。