パッケージ | mx.rpc.http |
クラス | public class SerializationFilter |
継承 | SerializationFilter Object |
言語バージョン: | ActionScript 3.0 |
製品バージョン: | Flex 3 |
ランタイムバージョン: | Flash Player 9, AIR 1.1 |
このクラスのインスタンスは 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」メソッドを使用しないことに注意してください。
メソッド | 定義元 | ||
---|---|---|---|
このメソッドは、HTTP 要求の結果を未加工形式で取得します。 | SerializationFilter | ||
このメソッドは、呼び出しを行う直前に HTTP サービスが呼び出します。 | SerializationFilter | ||
オブジェクトに指定されたプロパティが定義されているかどうかを示します。 | Object | ||
Object クラスのインスタンスが、パラメーターとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。 | Object | ||
指定されたプロパティが存在し、列挙できるかどうかを示します。 | Object | ||
[静的]
この静的関数は、特定の resultFormat 値について新しい SerializationFilter を登録するのに使用します。 | SerializationFilter | ||
このメソッドは HTTP サービスのすべての呼び出しについて呼び出されます。 | SerializationFilter | ||
このメソッドは HTTP サービス呼び出しの「send」メソッドから呼び出され、パラメーターを要求本文に変換します。 | SerializationFilter | ||
このメソッドが使用されるのは、要求本文オブジェクトからデータを取得し、それを URL ストリングにエンコードする必要がある場合です。 | SerializationFilter | ||
ループ処理に対するダイナミックプロパティの可用性を設定します。 | Object | ||
ロケール固有の規則に従って書式設定された、このオブジェクトのストリング表現を返します。 | Object | ||
指定されたオブジェクトのストリング表現を返します。 | Object | ||
指定されたオブジェクトのプリミティブな値を返します。 | Object |
deserializeResult | () | メソッド |
public function deserializeResult(operation:AbstractOperation, result:Object):Object
言語バージョン: | ActionScript 3.0 |
製品バージョン: | Flex 3 |
ランタイムバージョン: | Flash Player 9, AIR 1.1 |
このメソッドは、HTTP 要求の結果を未加工形式で取得します。これは、必要なら、より詳細に記入した ActionScript オブジェクトに変換できます。SerializationFilter をより一般的にするために、ユーザーは備わっている AbstractOperation の resultType プロパティまたは resultElementType プロパティを使用できます。これによって、コードは、受信要求を戻り型として ActionScript に設定された種類に動的にマッピングできます。
また、AbstractOperation には「properties」マップがあり、ユーザーはこれを ActionScript でのサービス呼び出しの一部として使用して追加プロパティを格納し、特定の種類の直列化解除を処理することもできます。
パラメーター
operation:AbstractOperation — AbstractOperation が起動中です。
| |
result:Object — サーバーから返された未加工の結果です。
|
Object — 変換された結果はサービス用の結果イベントに与えられます。
|
getRequestContentType | () | メソッド |
public function getRequestContentType(operation:AbstractOperation, obj:Object, contentType:String):String
言語バージョン: | ActionScript 3.0 |
製品バージョン: | Flex 3 |
ランタイムバージョン: | Flash Player 9, AIR 1.1 |
このメソッドは、呼び出しを行う直前に HTTP サービスが呼び出します。これのロールはこの要求のために使用される contentType を選択することです。多数の直列化形式について 1 つの固定コンテンツタイプがあるので、ここではそのコンテンツタイプを返すだけです。HTTPService 自体はコンテンツタイプで設定されているので、値はここで受け渡され、デフォルトの実装によって返されます。コンテンツタイプがサーバーに送信中のオブジェクトの種類に左右される場合に備えて、直列化中の要求本文には obj パラメーターもあります。
パラメーター
operation:AbstractOperation — 起動中の AbstractionOperation です。
| |
obj:Object — 直列化中の HTTP 要求の本文です。
| |
contentType:String — 操作用に設定した contentType
|
String — この HTTP に使用するコンテンツタイプです。
|
registerFilterForResultFormat | () | メソッド |
public static function registerFilterForResultFormat(resultFormat:String, filter:SerializationFilter):SerializationFilter
言語バージョン: | ActionScript 3.0 |
製品バージョン: | Flex 3 |
ランタイムバージョン: | Flash Player 9, AIR 1.1 |
この静的関数は、特定の resultFormat 値について新しい SerializationFilter を登録するのに使用します。スタートアップ時にこのメソッドを 1 回呼び出せば、直列化フィルターを使用する HTTPService または HTTPMultiService の resultFormat プロパティを指定するだけで、開発者が形式を指定しやすくできます。
パラメーター
resultFormat:String — カスタム resultFormat の名前は、供給された SerializationFilter と関連付けられます。
| |
filter:SerializationFilter — 登録する SerializationFilter です。
|
SerializationFilter |
serializeBody | () | メソッド |
public function serializeBody(operation:AbstractOperation, obj:Object):Object
言語バージョン: | ActionScript 3.0 |
製品バージョン: | Flex 3 |
ランタイムバージョン: | Flash Player 9, AIR 1.1 |
このメソッドは HTTP サービスのすべての呼び出しについて呼び出されます。これは、与えられたオブジェクトを HTTP の要求本文に直接設定するのに適した形式に変換できます。デフォルトの実装では、変換なしに本体として渡されたオブジェクトを返すのみです。
パラメーター
operation:AbstractOperation — 呼び出し中の AbstractOperation
| |
obj:Object — HTTP 要求の初期本文です。これは、serializeParameters の戻り値、sendBody メソッドへのパラメーターまたは HTTPService への送信メソッドのいずれかです。
|
Object — 要求で使用するために変換された可能性のある本文です。
|
serializeParameters | () | メソッド |
public function serializeParameters(operation:AbstractOperation, params:Array):Object
言語バージョン: | ActionScript 3.0 |
製品バージョン: | Flex 3 |
ランタイムバージョン: | Flash Player 9, AIR 1.1 |
このメソッドは HTTP サービス呼び出しの「send」メソッドから呼び出され、パラメーターを要求本文に変換します。オリジナル送信呼び出しのパラメーターはパラメーター配列に入れられます。このメソッドは、パラメーターのこのセットを、HTTP 要求本文のデータとして使用される単一のオブジェクトに変換します。デフォルトの実装ではオブジェクトが 1 つ作成されます。ここで、キーは Operation の argumentNames 配列内の値であり、値はパラメーターの値です。デフォルトの実装を使用するとき、argumentNames がパラメーター配列と同じ数のエレメントを持つように設定する必要があります。
1 つのオブジェクトのみを取得する sendBody メソッドを使用して HTTP 操作を起動する場合、このメソッドは使用されないことに注意してください。その場合、このステップは省略され、serializeBody メソッドのみが呼び出されます。
パラメーター
operation:AbstractOperation — AbstractOperation が起動中です。
| |
params:Array — send メソッドに渡されるパラメーターのリスト
|
Object — HTTP 要求で使用する本文
|
serializeURL | () | メソッド |
public function serializeURL(operation:AbstractOperation, obj:Object, url:String):String
言語バージョン: | ActionScript 3.0 |
製品バージョン: | Flex 3 |
ランタイムバージョン: | Flash Player 9, AIR 1.1 |
このメソッドが使用されるのは、要求本文オブジェクトからデータを取得し、それを URL ストリングにエンコードする必要がある場合です。操作またはサービスで設定された受信 URL が渡されます。このシステムでは、受信 URL は変換なしに返されるのみです。
パラメーター
operation:AbstractOperation — 呼び出し中の AbstractOperation
| |
obj:Object — サービスまたは操作に設定される URL
| |
url:String |
String — この要求で使用するために修正された可能性のある URL です。
|
Tue Jun 12 2018, 10:34 AM Z