让我先解释一下我的场景。我正在使用 Scribe 通过 Oauth 连接到 Scribe 不直接支持的 API。也就是说,我要连接的服务器需要输入一个 4 位数字作为能够创建 accessToken 的最后一步。
虽然这很好用,但当用户输入错误的 4 位数字时,应用程序将永远运行,不会抛出任何错误或异常(据我所知)。这是我正在使用的代码:
//verifierString has the 4-digit number
verifier = new Verifier(verifierString);
Logger.debug("Trading the Request Token for an Access Token...");
accessToken = service.getAccessToken(requestToken, verifier);
应用程序永远保留在 getAccessToken 中。我想知道是否有办法控制这一点,因为用户很可能输入了错误的 4 位数字。我检查了 getAccessToken, Oauth 1.0 的代码,因为它是我正在使用的代码:
public Token getAccessToken(Token requestToken, Verifier verifier)
{
config.log("obtaining access token from " + api.getAccessTokenEndpoint());
OAuthRequest request = new OAuthRequest(api.getAccessTokenVerb(), api.getAccessTokenEndpoint());
request.addOAuthParameter(OAuthConstants.TOKEN, requestToken.getToken());
request.addOAuthParameter(OAuthConstants.VERIFIER, verifier.getValue());
config.log("setting token to: " + requestToken + " and verifier to: " + verifier);
addOAuthParams(request, requestToken);
appendSignature(request);
Response response = request.send();
return api.getAccessTokenExtractor().extract(response.getBody());
}
似乎 send() 抛出了一个 RuntimeException,但不确定从我的代码中捕获它是否是正确的方法......有什么建议吗?
谢谢 !亚历克斯