Come posso evitare una finestra di autenticazione in Flex quando utilizzo HTTPService o URLRequest?
-
03-07-2019 - |
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?
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.