Web サービス要求

Flash Player 9 以降、Adobe AIR 1.0 以降

HTTP ベースの Web サービスにはさまざまなタイプがあります。主なタイプを以下に示します。

  • REST

  • XML-RPC

  • SOAP[SOAP]

ActionScript 3 で Web サービスを利用するには、URLRequest オブジェクトを作成し、URL 変数または XML ドキュメントを使用して Web サービス呼び出しを作成し、URLLoader オブジェクトを使用してサービスに呼び出しを送信します。Flex フレームワークには、Web サービスの利用を容易にするいくつかのクラスが用意されています。これらのクラスは、複雑な SOAP サービスにアクセスする場合に特に役立ちます。Flash Professional CS3 以降では、Flash Professional で開発したアプリケーションおよび Flash Builder で開発したアプリケーション内で、Flex のクラスを使用できます。

HTML ベースの AIR アプリケーションでは、URLRequest クラスと URLLoader クラスの組み合わせ、または Javascript の XMLHttpRequest クラスのいずれかを使用できます。必要に応じて、Flex フレームワークの Web サービスコンポーネントを Javascript コードに公開する SWF ライブラリを作成することもできます。

アプリケーションをブラウザーで実行する場合は、Web サービスをホストしているサーバーが他のドメインからのアクセスを許可するクロスドメインポリシーファイルをホストしている場合を除き、呼び出し側の SWF と同じインターネットドメイン内にある Web サービスのみを利用できます。クロスドメインポリシーファイルが用意されていない場合は、自分のサーバーをプロキシとして要求を中継するテクニックがよく使用されます。Adobe Blaze DS および Adobe LiveCycle では、Web サービスのプロキシをサポートしています。

AIR アプリケーションでは、アプリケーションセキュリティサンドボックスから Web サービス呼び出しを実行する場合、クロスドメインポリシーファイルは必要ありません。AIR アプリケーションのコンテンツがリモートドメインから提供されることはありません。したがって、クロスドメインポリシーファイルによって防御されている攻撃にさらされる可能性はありません。HTML ベースの AIR アプリケーションでは、アプリケーションセキュリティサンドボックス内のコンテンツからクロスドメイン XMLHttpRequest を実行できます。また、コンテンツが iframe にロードされる場合に限り、他のセキュリティサンドボックス内のコンテンツからクロスドメイン XMLHttpRequest を実行できます。