Wie kann ich einen Authentifizierungsdialog in Flex vermeiden, wenn Httpservice oder URLRequest verwenden?
-
03-07-2019 - |
Frage
Dies bezieht sich diese Frage . Ich schreibe eine Flex app (a WindowedApplication), den REST verwendet. Alles ist in Ordnung, wenn ich mit einem gültigen Authentifizierung zu veröffentlichen, aber wenn ich zufällig einen ungültigen Benutzername oder Passwort an das REST-API zu übergeben (ein Twitter-REST-API, um genau zu sein), ein Authentifizierungsdialog erscheint.
Das ist keine wünschenswerte User Experience, und es geschieht sowohl wenn ich Http und URLRequest. Es scheint nicht ein Ereignis zu sein, die ich den Dialog abzubrechen fangen kann.
Hier ist, was mein Code wie folgt aussieht:
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);
Bin ich etwas fehlt? Gibt es einen besseren Weg, dies zu nähern?
Lösung
Von der Twitter-API Doc hier :
suppress_response_codes: Wenn diese Parameter vorhanden sind, alle Antworten wird mit einem 200-OK-Status zurückgeführt werden Code - auch Fehler. Dieser Parameter existiert Flash aufnehmen und JavaScript laufenden Anwendungen in Browser, die alle nicht-200 abfangen Antworten. Wenn es verwendet wird, ist es dann die Aufgabe der Client-Fehler zu bestimmen, Staaten durch die Reaktion Körper Parsen. Verwenden Sie mit Vorsicht, da solche Fehler Nachrichten können geändert werden.
Andere Tipps
Das ist, weil die URL anfordern Authentifizierung verarbeitet. Um zu vermeiden, dass die als nächstes tun:
request.authenticate = false;
Viele Grüße!
Alain.
Ich weiß nicht, ob dies in einem normalen Flex App funktioniert, aber in AIR-Anwendungen können Sie eine Liste der erlaubten Antwortcodes auf gültig betrachtet werden.