Question

Je vais d'abord vous expliquer mon scénario.J'utilise Scribe pour me connecter via Oauth à une API non directement prise en charge par Scribe.Cela dit, le serveur auquel je me connecte doit entrer un numéro à 4 chiffres comme étape finale pour pouvoir créer le accessToken.

Bien que cela fonctionne très bien, lorsque l'utilisateur entre les 4 chiffres de manière erronée, l'application reste en cours d'exécution pour toujours, aucune erreur ou exception n'est générée (à ma connaissance).Voici le code que j'utilise:

//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);

L'application reste indéfiniment dans getAccessToken.Je me demande s'il existe un moyen de contrôler cela, car il est très possible que les utilisateurs saisissent mal les 4 chiffres.J'ai vérifié le code de getAccessToken, Oauth 1.0 puisque c'est celui que j'utilise:

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

Il semble seulement que send () lève une RuntimeException, mais je ne sais pas si l'attraper à partir de mon code est la bonne façon de le faire .... des suggestions?

Merci! Alex

Était-ce utile?

La solution

Si vous essayez l'un des exemples de scribe, vous verrez que la saisie d'un mauvais code de vérificateur entraîne un OAuthException immédiat (notez que c'est un OAuthException cependant, comme vous le déclarez correctement, il hérite de RuntimeException, c'est par conception puisque jesuis à 100% contre les exceptions vérifiées).

Le problème se situe côté serveur, car ce que vous dites, il maintient la connexion http ouverte longtemps, voire pour toujours, jusqu'à ce que le délai de connexion par défaut se produise.

Peut-être que si vous demandez dans les forums Api, vous obtiendrez une meilleure réponse, en utilisant également le mode débogage de scribe (nouveau depuis la 1.3.0) vous aide à diagnostiquer la plupart des problèmes.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top