我们正在尝试将Google身份验证令牌发送到Google App Engine上的Rest界面。 如此处所述(标题为#34;调用Google API")
https://developers.google.com/accounts/docs/OAuth2InstalledApp
我们应该通过包含授权:承载HTTP标头来实现。 在客户端,我们正在使用;
public ClientResource getClientResource(Reference pReference, String pAccessToken)
{
ClientResource lClientResource = new ClientResource(pReference);
ChallengeResponse lChallengeResponse = new ChallengeResponse(ChallengeScheme.HTTP_OAUTH_BEARER);
lChallengeResponse.setRawValue(pAccessToken);
lClientResource.setChallengeResponse(lChallengeResponse);
return lClientResource;
}
所以带有setRawValue()的ChallengeResponse用于设置标题;
ChallengeResponse lChallengeResponse = new ChallengeResponse(ChallengeScheme.HTTP_OAUTH_BEARER);
lChallengeResponse.setRawValue(pAccessToken);
lClientResource.setChallengeResponse(lChallengeResponse);
对于我们的J2SE客户端,这是有效的。虽然有错误信息;
" Restlet引擎不支持挑战方案HTTP_Bearer。"
我们可以使用;
在服务器端读取令牌ChallengeResponse lChallengeResponse = pRequest.getChallengeResponse();
String lAccessToken = lChallengeResponse.getRawValue();
虽然这适用于我们的J2SE客户端,但我们的GWT客户端始终返回 lChallengeResponse == null
这是设置授权:承载HTTP标头的正确方法,还是应该添加额外/其他配置选项?
为什么这不适用于我们的GWT客户端(返回null)?
我们如何摆脱J2Se客户端上的错误消息?