1

通过 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();
}

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

有什么建议吗?:)

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

干杯!

4

1 回答 1

0

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

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

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

于 2013-09-24T21:09:35.467 回答