Adobe Air (wiwobooks.com Release)
loadURL():void { myStream.load(myRequest);
}
private function handleComplete(e:Event):void { taDebug.text += "\nErgebnis:\n" +
myStream.readMultiByte(myStream.bytesAvailable, "iso-8859-15");
}
private function handleError(e:IOErrorEvent):void { taDebug.text += "Fehler: " + e.text + "\n";
}
]]>
Listing 17.4 Beispiel: auf entfernte Datei zugreifen
17.2.5 HTTP-Antwortstatus auswerten
Bereits im Flash Player löst die URLStream -Klasse ein Ereignis HTTPStatusEvent.HTTP_STATUS aus, das sowohl im Flash Player als auch in AIR den Statuscode der Anfrage zurückgeben kann. In AIR jedoch steht zusätzlich das Ereignis HTTPStatusEvent.HTTP_RESPONSE_STATUS zur Verfügung. Dieses wird, anders als httpStatus , ausgelöst, noch bevor das Ergebnis der Abfrage ankommt und verfügt darüber hinaus über folgende Eigenschaften:
responseHeaders
Ein Array von HTTP-Headern, die vom Server zurückgegeben wurden. responseURL
Die URL, von der aus die Antwort auf die Anfrage aus zurückgegeben wurde (das ist nicht immer gleichbedeutend mit der angefragten URL, z. B. bei Redirects).
Lösungsweg
1. Erstellen einer URLRequest - und URLStream -Instanz wie in Abschnitt 17.2.4
2. Zusätzlich Registrieren eines Ereignis-Listeners für HTTPStatusEvent.HTTP_ RESPONSE_STATUS
3. Aufruf der URLStream -Instanzmethode load() zum Laden der entfernten Datei
4. Logik zur Unterscheidung von erfolgreichem Abruf (HTTP-Status 200 OK), Toleranzfällen (z. B. 301 Moved Permanently , 302 Moved etc.) und Fehlern (z. B. 404 Not Found , 401 Restricted , 500 Internal Server Error ) im EreignisListener
5. Auswerten des HTTP-Header-Arrays im Ereignis-Listener
So geht es
Nachfolgend wird das vorangegangene Beispiel um die in fett markierten Zeilen ergänzt, um auf den HTTP-Antwortstatus zu reagieren und die zurückgegebenen HTTP-Header auszuwerten:
private var myRequest:URLRequest = new URLRequest("http:// skiller.eu/airbook/sample-data/sampleText.txt"); private var myStream:URLStream = new URLStream(); private function init():void {
myStream.addEventListener(Event.COMPLETE,
handleComplete);
myStream.addEventListener(IOErrorEvent.IO_ERROR,
handleError);
myStream. addEventListener (HTTPStatusEvent.
HTTP_RESPONSE_STATUS, handleHttpResponseStatus); }
private function loadURL():void { myStream.load(myRequest);
}
private function handleComplete(e:Event):void { taDebug.text += "\nErgebnis:\n" + myStream. readMultiByte(myStream.bytesAvailable, "iso-8859-15");
}
private function handleHttpResponseStatus(e:
HTTPStatusEvent):void {
taDebug.text += "\nHTTP-Antwortstatus:"+e.status; taDebug.text + = "\n\nResponseURL: " + e.responseURL +
"\n\nHeaders:";
for(var i:uint =0;i URLRequestHeader;
taDebug.text + = header.name + ": " + header.value +
"\n";
}
}
private function handleError(e:IOErrorEvent):void { taDebug.text += "Fehler: " + e.text + "\n"; }
]]>
Listing 17.5 Beispiel: HTTP-Status und Header auswerten
Wenn Sie das Beispiel ausführen, wird nach einem Klick auf den Button Datei laden versucht, eine Textdatei aus dem Internet zu laden. Sobald ein Ergebnis zurückkommt, werden der Antwortstatus, die Response-URL, die HTTP-Header sowie der Inhalt der Textdatei angezeigt.
Zu guter Letzt muss nach der Programmierarbeit die AIR-Anwendung noch fertiggestellt und als Installationspaket digital signiert und zur Verfügung gestellt werden. Dieses Kapitel behandelt die dafür notwendigen Schritte.
18 Eine AIR-Anwendung bereitstellen
Nachdem Sie sich erfolgreich durch die Entwicklung Ihrer Anwendung gekämpft haben und der Meinung sind, dass Sie diese jetzt einer breiten Öffentlichkeit vorstellen wollen, ist es an der Zeit, sie zu einem Installationspaket zu verpacken.
18.1 Ablauf der Installation einer AIR-Anwendung
Ganz gleich, ob der Benutzer Ihrer Anwendung diese als .airDatei erhält oder sie direkt von Ihrer Website aus installiert, die eigentliche Installation der Anwendung geschieht immer über die AIR-Laufzeitumgebung. Alle
Weitere Kostenlose Bücher