Wie die HTTP-Vorgangsargumente genau in den HTTP-Hauptteil gestellt werden, hängt vom verwendeten serializationFilter ab.
Der Standardwert ist
Hinweis: Aufgrund einer Softwarelimitierung generiert der HTTPService bei Verwendung von GET keine benutzerfreundlichen Fehlermeldungen.
Hinweis: Adobe empfiehlt, statt dieser Methode die mx.messaging.ChannelSet.logout()-Methode zu verwenden.
Der Standardwert ist
Die Funktion, auf die die
<mx:HTTPService id="hs" xmlDecode="xmlDecoder" url="myURL" resultFormat="object" contentType="application/xml"> <mx:request><source/> <obj>{RequestObject}</obj> </mx:request> </mx:HTTPService>Das nachstehende Beispiel zeigt eine xmlDecoder-Funktion:
function xmlDecoder (myXML) { // Simplified decoding logic. var myObj = {}; myObj.name = myXML.firstChild.nodeValue; myObj.honorific = myXML.firstChild.attributes.honorific; return myObj; }
Die
<mx:HTTPService id="hs" xmlEncode="xmlEncoder" url="myURL" resultFormat="object" contentType="application/xml"> <mx:request><source/> <obj>{RequestObject}</obj> </mx:request> </mx:HTTPService>Das nachstehende Beispiel zeigt eine xmlEncoder-Funktion:
function xmlEncoder (myObj) { return new XML(""); } MyObj.test MyObj.anotherTest
Wie die HTTP-Vorgangsargumente genau in den HTTP-Hauptteil gestellt werden, hängt vom verwendeten serializationFilter ab.
Die Funktion, auf die die
<mx:HTTPService id="hs" xmlDecode="xmlDecoder" url="myURL" resultFormat="object" contentType="application/xml"> <mx:request><source/> <obj>{RequestObject}</obj> </mx:request> </mx:HTTPService>Das nachstehende Beispiel zeigt eine xmlDecoder-Funktion:
function xmlDecoder (myXML) { // Simplified decoding logic. var myObj = {}; myObj.name = myXML.firstChild.nodeValue; myObj.honorific = myXML.firstChild.attributes.honorific; return myObj; }
Die
<mx:HTTPService id="hs" xmlEncode="xmlEncoder" url="myURL" resultFormat="object" contentType="application/xml"> <mx:request><source/> <obj>{RequestObject}</obj> </mx:request> </mx:HTTPService>Das nachstehende Beispiel zeigt eine xmlEncoder-Funktion:
function xmlEncoder (myObj) { return new XML(""); } MyObj.test MyObj.anotherTest
Der Standardwert ist
Sie können Attribute, wie URL und Methode für das HTTPMultiService-Tag festlegen, die als Standardeinstellungen für Werte der einzelnen Vorgangs-Tags gesetzt werden. Die URL des HTTPMultiService dient als Basis-URL (d. h. Präfix) für alle relativen URL, die in den HTTP-Vorgangs-Tags gesetzt werden. Jeder HTTP-Vorgang hat eine
Sie können der angegebenen URL Parameter übergeben, mit deren Hilfe Daten in die HTTP-Anforderung eingegeben werden. Die contentType-Eigenschaft gibt einen MIME-Type zur Bestimmung des Datenformats für die Datensendung (z. B. HTTP-Kodierung oder XML) an.
Sie können auch einen Serialisierungsfilter verwenden, um ein personalisiertes resultFormat, wie zum Beispiel JSON zu implementieren. Wenn Sie nicht den serverbasierten Proxy-Dienst verwenden, stehen Ihnen nur HTTP GET- oder HTTP POST-Methoden zur Verfügung. Wenn Sie jedoch die
Hinweis: Im Unterschied zur HTTPService-Klasse definiert die HTTPMultiService-Klasse keine
Hinweis: Aufgrund einer Softwareeinschränkung wie bei HTTPService generiert der HTTPMultiService keine benutzerfreundlichen Fehlermeldungen, wenn Sie GET ohne einen Proxy verwenden.
Der Standardwert ist
Eine Instanz dieser Klasse kann die Formatierung von HTML-Anforderungen und -Antworten sowie die Konvertierung von deren Parametern verwalten. Wenn Sie HTTPService oder HTTPMultiService verwenden, wird in der Regel mit einem Server kommuniziert, der Daten in einem spezifischen Format verlangt - zum Beispiel URL-kodierte Werte für ein Typ-HTML-Formular, XML-Werte oder andere Serialisierungsformate wie JSON. Mit dem SerializationFilter können Sie anpassen, wie HTTPService und HTTPMultiService die Parameter eines Vorgangs in den Hauptteil einer HTTP-Anforderung konvertieren und wie die Antwort in den Antwortwert des Vorgangs umgewandelt wird. Framework-Entwickler können ein neues Serialisierungsformat einführen, indem sie den SerializationFilter neu implementieren. Sie können dann diese Komponenten sowie sämtliche darauf basierenden Frameworks und Werkzeuge verwenden, ohne mit dem Format im Detail vertraut sein zu müssen.
Als Erstes müssen Sie den SerializationFilter erweitern und eine oder mehrere Konvertierungsmethoden überschreiben. Mit diesem Filter können Sie die geordnete Parameterliste in den Hauptteil einer Anforderung umwandeln, den Hauptteil und den Inhaltstyp der Anforderung modifizieren und die tatsächliche URL der Anforderung ändern sowie die Antwortdaten in das Ergebnisobjekt konvertieren, das im Ergebnisereignis des Dienstes zurückgegeben wird.
Es gibt zwei Möglichkeiten, den SerializationFilter für einen bestimmten HTTPService oder HTTPMultiService anzuwenden. Sie können entweder die serializationFilter-Eigenschaft im Dienst einstellen oder einen SerializationFilter für ein neues Ergebnisformat statisch registrieren. Wenn Sie diesen Ansatz verwenden, können Sie einfach das resultFormat angeben, um einen vorregistrierten SerializationFilter zu verwenden. So können Sie beispielsweise einen SerializationFilter für den „json“-Typ registrieren und diesen Filter anschließend mithilfe der Einstellung resultFormat="json" verwenden.
Beachten Sie, dass HTTPService nur Methoden bereitstellt, die den Hauptteil der Anforderung direkt und somit nicht die „serializeParameters“-Methode verwenden.
Beachten Sie auch, dass zu AbstractOperation eine „properties“-Zurodnung gehört, mit deren Hilfe Sie zusätzliche Eigenschaften als Teil des Dienstaufrufs in ActionScript speichern können, um die Entserialisierung eines bestimmten Typs zu verwalten.
Beachten Sie, dass diese Methode nicht verwendet wird, wenn Sie den HTTP-Vorgang mithilfe der sendBody-Methode aufrufen, die nur ein einzelnes Objekt übernimmt. In diesem Fall wird dieser Schritt übersprungen und nur die serializeBody-Methode aufgerufen.