Позвольте мне сначала объяснить мой сценарий.Я использую Scribe для подключения через Oauth к API, который не поддерживается Scribe напрямую.Тем не менее, сервер, к которому я подключаюсь, требует ввода 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, но не уверен, что перехват его из моего кодаправильный способ сделать это .... какие-либо предложения?
Спасибо!Alex