2012-02-20 2 views
1

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

Это только кажется, что посыл() бросает RuntimeException, но не уверен, если ловить его из моего кода является правильным способ сделать это ... любые предложения?

Спасибо! Alex

ответ

1

Если попробовать любой из scribe примеров вы увидите, что введя неправильные результаты верификатор кода в немедленном OAuthException (заметим, что это OAuthException, хотя, как вы правильно утверждать, что наследует от RuntimeException, это, дизайн, так как я на 100% против проверенных исключений).

Проблема на стороне сервера, так как вы говорите, что она поддерживает соединение http долгое время или, возможно, даже навсегда, до тех пор, пока не произойдет таймаут соединения по умолчанию.

Возможно, если вы спросите на форумах Api, вы получите лучший ответ, также используя отладчик scribe отлаживает (новый с версии 1.3.0), который помогает вам диагностировать большинство проблем.

+0

Спасибо, Пабло, это хорошо знать, и да, я думаю, проблема на стороне сервера. Я должен проверить это, хотя ... Еще раз спасибо! – AlejandroVK

 Смежные вопросы

  • Нет связанных вопросов^_^