Comment puis-je éviter une boîte de dialogue d'authentification dans Flex lorsque j'utilise HTTPService ou URLRequest?

StackOverflow https://stackoverflow.com/questions/404199

Question

Ceci est lié à cette question . J'écris une application Flex (une WindowedApplication) qui utilise REST. Tout va bien lorsque je poste avec une authentification valide, mais si je passe un nom d'utilisateur ou un mot de passe invalide à l'API REST (une API REST Twitter, pour être spécifique), une boîte de dialogue d'authentification apparaît.

Ce n'est pas une expérience utilisateur souhaitable, et cela se produit lorsque j'utilise HTTPService et URLRequest. Il ne semble pas y avoir d’événement susceptible d’annuler le dialogue.

Voici à quoi ressemble mon code:

    var request:URLRequest = new URLRequest('http://twitter.com/statuses/update.json');
    request.method = URLRequestMethod.POST;
    var encoder : Base64Encoder = new Base64Encoder();
    encoder.encode(this.user + ':' + this.password);
    request.requestHeaders.push(new URLRequestHeader("Authorization", "Basic " + encoder.toString()));
    var params:Object = new Object();
    params.status = msg;                
    request.data = params;

    var loader:URLLoader = new URLLoader();
    loader.addEventListener(Event.COMPLETE, HandleRequestComplete);
    loader.load(request);

Est-ce que je manque quelque chose? Y a-t-il une meilleure façon d’aborder cela?

Était-ce utile?

La solution

Extrait du document API Twitter ici :

  

suppress_response_codes: Si ceci   paramètre est présent, toutes les réponses   sera retourné avec un statut 200 OK   code - même les erreurs. Ce paramètre   existe pour accueillir Flash et   Applications JavaScript s'exécutant dans   les navigateurs qui interceptent tous les non-200   les réponses. Si utilisé, c'est alors le travail   du client pour déterminer l'erreur   états en analysant le corps de la réponse.   Utilisez avec prudence, comme ces erreurs   les messages peuvent changer.

Autres conseils

En effet, votre demande d'URL gère l'authentification. Pour éviter cela, procédez comme suit:

request.authenticate = false;

Cordialement!

Alain.

Je ne sais pas si cela fonctionne dans une application Flex normale, mais dans les applications AIR, vous pouvez définir une liste des codes de réponse autorisés pour qu'ils soient considérés comme valides.

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