Adobe Air (wiwobooks.com Release)
authenticate
cacheResponse
followRedirects
manageCookies
useCache
userAgent
Bedeutung
gibt an, ob eine Authentifizierungsanfrage bearbeitet werden soll oder ein HTTP-Fehler ( 401 / Unauthorized ) zurückgegeben wird. gibt an, ob das Ergebnis der letzten Anfrage zwischengespeichert werden soll.
gibt an, ob einer umgeleiteten Ressource nachgegangen oder ein entsprechender HTTP-Status ( 301 / Moved Permanently , 302 / Found etc.) akzeptiert werden soll.
gibt an, ob Cookies automatisch verwaltet und mit der Anfrage mitgeschickt werden oder »händisch«.
gibt an, ob erst im lokalen Cache nach der angefragten Ressource gesucht werden soll.
entspricht der user agent -Zeichenkette, die der Ressource mit der Anfrage übermittelt wird.
Tabelle 17.2 AIR-spezifische Eigenschaften der URLRequest-Klasse Sie sehen etwas später noch diese Klasse in einer exemplarischen Verwendung.
17.2.3 URLStream-Klasse
Genau wie die lokalen Dateien, die über die FileStream -Klasse eingelesen werden, sind alle entfernten Inhalte, die mit der Klasse URLStream abgerufen werden, vom Typ ByteArray . Daher bietet auch die URLStream -Klasse die gleichen Instanzmethoden zum Lesen und Schreiben von Daten wie die ByteArray -Klasse selbst.
Methode
readBoolean()
readByte()
readBytes(bytes:ByteArray, offset:uint, length:uint)
readDouble()
readFloat()
Erläuterung
liest einen boolschen Wert ein
liest ein Byte mit Vorzeichen ein
liest length Anzahl an Bytes mit Offset offset in bytes ein
liest eine Fließkommazahl doppelter Genauigkeit ein liest eine Fließkommazahl einfacher Genauigkeit ein
Tabelle 17.3 Instanzmethoden der URLStream-Klasse zum Einlesen von Daten
Methode
readInt()
readMultiByte(length:uint, charSet:String)
readObject()
readShort()
readUnsignedByte()
readUnsignedInt()
readUnsignedShort()
readUTF()
readUTFBytes(length:uint)
Erläuterung
liest einen 32-Bit-Ganzzahlwert mit Vorzeichen ein
liest eine length Zeichen lange Zeichenkette unter Verwendung des Zeichensatzes charSet ein
liest ein in AMF ( Action Message Format , das binäre Format für Flash Remoting) serialisiertes Objekt ein
liest einen 16-Bit-Ganzzahlwert mit Vorzeichen ein liest ein Byte ohne Vorzeichen ein
liest einen 32-Bit-Ganzzahlwert ohne Vorzeichen ein liest einen 16-Bit-Ganzzahlwert ohne Vorzeichen ein
liest eine UTF-8-Zeichenkette ein (bezieht die Information über die Länge der Zeichenkette aus dem UTFHeader)
liest length Anzahl an UTF-8-Bytes ein
Tabelle 17.3 Instanzmethoden der URLStream-Klasse zum Einlesen von Daten (Forts.)
17.2.4 Entfernte Datei abrufen
Das Abrufen entfernter Dateien verläuft ähnlich wie der Aufruf von lokalen Dateien. Zuerst wird ein URLRequest -Objekt erstellt, das die Datei als Referenz repräsentiert und anschließend ein URLStream für diese Datei geöffnet. Anders als bei lokalen Dateien, deren Verfügbarkeit prinzipiell in der Kontrolle des Benutzers ist, können entfernte Ressourcen nicht synchron abgerufen werden, sondern nur asynchron mithilfe von Ereignissen.
Lösungsweg
1. Erstellen einer URLRequest -Instanz für die entfernte Datei, URL zur Datei als Parameter url
2. Erstellen einer URLStream -Instanz
3. Registrieren von Ereignis-Listenern für Event .COMPLETE , IOErrorEvent.IO_ ERROR
4. Aufruf der URLStream -Instanzmethode load() mit URLRequest -Instanz als Parameter
Stolperfallen/Caveats
Beachten Sie, dass ein IOErrorEvent nur ausgelöst wird, wenn der Server nicht erreicht werden kann. Falls die angeforderte Ressource nicht auf dem Server vorhanden ist oder ein anderer serverseitiger Fehler vorliegt, retourniert der Server hingegen dennoch ein Ergebnis in Verbindung mit dem entsprechenden HTTPStatuscode. Näheres hierzu erfahren Sie in nächsten Abschnitt 17.2.5.
So geht es
Das nachfolgende Flex-Beispiel versucht nach Klick auf die Button-Komponente, eine entfernte Datei abzurufen, und stellt bei Gelingen deren Inhalt in einer TextArea -Komponente dar, bei einem IOErrorEvent hingegen die entsprechende Fehlermeldung:
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);
}
private function
Weitere Kostenlose Bücher