HTTP 操作引数を HTTP 本文に設定する方法は、使用する serializationFilter で決まります。
デフォルト値は
メモ:ソフトウェアの制約により、HTTPService で GET 要求を使用した場合、ユーザーフレンドリーなエラーメッセージは生成されません。
メモ:このメソッドではなく mx.messaging.ChannelSet.logout() メソッドを使用することをお勧めします。
デフォルト値は
<mx:HTTPService id="hs" xmlDecode="xmlDecoder" url="myURL" resultFormat="object" contentType="application/xml"> <mx:request><source/> <obj>{RequestObject}</obj> </mx:request> </mx:HTTPService>次に、xmlDecoder 関数の例を示します。
function xmlDecoder (myXML) { // Simplified decoding logic. var myObj = {}; myObj.name = myXML.firstChild.nodeValue; myObj.honorific = myXML.firstChild.attributes.honorific; return myObj; }
<mx:HTTPService id="hs" xmlEncode="xmlEncoder" url="myURL" resultFormat="object" contentType="application/xml"> <mx:request><source/> <obj>{RequestObject}</obj> </mx:request> </mx:HTTPService>次に、xmlEncoder 関数の例を示します。
function xmlEncoder (myObj) { return new XML(""); } MyObj.test MyObj.anotherTest
HTTP 操作引数を HTTP 本文に設定する方法は、使用する serializationFilter で決まります。
<mx:HTTPService id="hs" xmlDecode="xmlDecoder" url="myURL" resultFormat="object" contentType="application/xml"> <mx:request><source/> <obj>{RequestObject}</obj> </mx:request> </mx:HTTPService>次に、xmlDecoder 関数の例を示します。
function xmlDecoder (myXML) { // Simplified decoding logic. var myObj = {}; myObj.name = myXML.firstChild.nodeValue; myObj.honorific = myXML.firstChild.attributes.honorific; return myObj; }
<mx:HTTPService id="hs" xmlEncode="xmlEncoder" url="myURL" resultFormat="object" contentType="application/xml"> <mx:request><source/> <obj>{RequestObject}</obj> </mx:request> </mx:HTTPService>次に、xmlEncoder 関数の例を示します。
function xmlEncoder (myObj) { return new XML(""); } MyObj.test MyObj.anotherTest
デフォルト値は
HTTPMultiService タグで URL や method などの属性を設定すると、個々の操作タグで設定される値のデフォルトとして使用できます。HTTPMultiService の URL は http 操作タグで設定される相対 URL の基本 URL(つまり、プレフィックス)として使用されます。各 http 操作には
HTTP 要求にデータを設定するのに使用する指定の URL にパラメーターを渡せます。contentType プロパティでは通信データの形式(HTTP フォームエンコーディングや XML など)を判別するために使用される MIME タイプを指定します。
直列化フィルターを使用して JSON のようなカスタム resultFormat を実装することもできます。サーバーベースのプロキシサービスを経由しない場合は、HTTP GET メソッドまたは POST メソッドだけを使用できます。
メモ:HTTPService クラスとは異なり、HTTPMultiService クラスでは
メモ:HTTPService と同じく、ソフトウェアの制約により、HTTPMultiService でプロキシを使用せずに GET を使用した場合、ユーザーフレンドリーなエラーメッセージは生成されません。
デフォルト値は
このクラスのインスタンスは HTTP 要求、応答のフォーマットおよびパラメーターの変換を管理できます。HTTPService または HTTPMultiService を使用するときは、データを特定の形式で渡すと考えられるサーバーにデータを送信するのが普通です。例えば、HTML フォーム型用にエンコードした URL、XML 値、または JSON のような別の直列化形式です。SerializationFilter によって、ユーザーは、HTTPService と HTTPMultiService が操作パラメーターを HTTP 本文の要求に変換する方法、応答を操作の戻り値に変換する方法をカスタマイズできます。フレームワーク開発者は、SerializationFilter を新規に実装して新規直列化形式をシステムに導入し、これらコンポーネントおよびこれらコンポーネント上に構築された全フレームワークとツールを使用できます。その場合、形式自体の詳細を知る必要はありません。
最初に行うのは、SerializationFilter を拡張し、1 つまたは複数の変換メソッドを上書きすることです。フィルターを使用すると、パラメーターの順序付きリストを要求本文に変換し、要求本文を修正し、要求で使用されるコンテンツタイプを修正し、要求で使用される実際の URL を修正し、応答データをサービスの結果イベントで返される結果オブジェクトに変換できます。
特定の HTTPService または HTTPMultiService 用に SerializationFilter を指定する方法が 2 つあります。サービスの serializationFilter プロパティを設定するか、または新規要求形式用に SerializationFilter を静的に登録するかのどちらかです。resultFormat を指定するだけでこのアプローチを採用する場合は、登録済み SerializationFilter を使用できます。例えば、「json」型用に SerializationFilter を登録し、resultFormat="json" と設定してそのフィルターを使用できます。
HTTPService は要求本文を直接取得するメソッドを提供するのみで、「serializeParameters」メソッドを使用しないことに注意してください。
また、AbstractOperation には「properties」マップがあり、ユーザーはこれを ActionScript でのサービス呼び出しの一部として使用して追加プロパティを格納し、特定の種類の直列化解除を処理することもできます。
1 つのオブジェクトのみを取得する sendBody メソッドを使用して HTTP 操作を起動する場合、このメソッドは使用されないことに注意してください。その場合、このステップは省略され、serializeBody メソッドのみが呼び出されます。