Come posso evitare una finestra di autenticazione in Flex quando utilizzo HTTPService o URLRequest?

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

Domanda

Questo è legato a questa domanda . Sto scrivendo un'app Flex (WindowedApplication) che utilizza REST. Va bene quando invio un'autenticazione valida, ma se mi capita di passare un nome utente o una password non validi all'API REST (un'API REST di Twitter, per essere specifici), viene visualizzata una finestra di dialogo di autenticazione.

Non è un'esperienza utente desiderabile e succede sia quando utilizzo HTTPService che URLRequest. Non sembra esserci un evento che posso catturare per annullare la finestra di dialogo.

Ecco come appare il mio codice:

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

Mi sto perdendo qualcosa? C'è un modo migliore per affrontarlo?

È stato utile?

Soluzione

Dal documento API di Twitter qui :

  

suppress_response_codes: se questo   il parametro è presente, tutte le risposte   verrà restituito con uno stato 200 OK   codice - anche errori. Questo parametro   esiste per ospitare Flash e   Applicazioni JavaScript in esecuzione   browser che intercettano tutti i non 200   risposte. Se utilizzato, è quindi il lavoro   del client per determinare l'errore   afferma analizzando il corpo della risposta.   Usare con cautela, come quegli errori   i messaggi possono cambiare.

Altri suggerimenti

Questo perché la tua richiesta URL gestisce l'autenticazione. Per evitare ciò, procedi come segue:

request.authenticate = false;

Saluti!

Alain.

Non so se funziona in una normale app Flex, ma nelle applicazioni AIR è possibile impostare un elenco di codici di risposta consentiti da considerare validi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top