メソッド | プロパティ | イベント | フレームあり | フレームなし

mx.servicetags
HTTPService クラス


実装インターフェイスの一覧
           mx.core.MXMLObject


HTTPService クラス

<mx:HTTPService> タグは、MXML ファイル内で HTTPService オブジェクトを表すために使用します。HTTPService オブジェクトの send() メソッドを呼び出すと、指定した URL に HTTP GET または HTTP POST 要求が送られ、HTTP 応答が返されます。指定する URL にパラメータを渡すこともできます。

メモ : ソフトウェアの制約により、HTTPService で GET 要求を使用した場合、ユーザーフレンドリーなエラーメッセージは生成されません。

MXML シンタックス

<mx:HTTPService> タグには、次のプロパティを使用できます。

 <mx:HTTPService
concurrency="multiple|single|last"
contentType="application/x-www-form-urlencoded|application/xml"
fault="No default."
id="No default."
method="GET|POST"
protocol="http|https"
result="No default."
resultFormat="object|xml|flashvars|text"
serviceName="No default."
showBusyCursor="false|true"
url="No default."
xmlEncode="No default."
xmlDecode="No default."
/>
メモ : HTTP で サービスされている Flex アプリケーションから HTTPS を介して HTTP サービスにアクセスするには、protocol プロパティを https に設定する必要があります。

<mx:HTTPService> タグには 1 つの <mx:request> タグを設定し、そこでパラメータを指定することができます。

を参照するにはここをクリックしてください

関連項目
    mx.events.EventDispatcher
    mx.validators.Validator
    mx.managers.CursorManager



メソッド
       cancel( ) :  Void
既存の HTTP サービス呼び出しをすべてキャンセルします。
       clearResult( fireBindingEvent:Boolean) :  Void
HTTPService の result プロパティを null に設定します。
       clearUsernamePassword( ) :  Void
以降の要求から、現在のユーザー名およびパスワードを削除します。
       send( parameters:Object) :  Object
指定した URL に HTTP GET または HTTP POST 要求を送信します。
       setUsernamePassword( username:String, password:String) :  Void
ユーザー名およびパスワードを各要求の一部として送信します。
       xmlDecode
XML によるサービス結果をデコードする際に使用される ActionScript 関数です。
       xmlEncode
サービス要求を XML にエンコードする際に使用される ActionScript 関数です。



プロパティ
       concurrency:String
同一サービスに対する複数の呼び出しの処理方法を示す値です。
       contentType:String
サービス要求のコンテンツタイプです。
       method:String
要求を送信するための HTTP メソッドです。
       protocol:String
(MXML のみ、ランタイムプロパティではない) サービス要求に使用するプロトコルを指定します。使用できる値は http か https のいずれかです。
       request:Object
URL に渡すパラメータとして使用される、名前と値のペアのオブジェクトです。
       result:Object   [読み取り専用]
最後の要求の結果に対するアクセスを提供します。
       resultFormat:String
HTTP 呼び出しから返された結果を非直列化する方法を示す値です。
       serviceName:String
サーバーの WEB-INF/flex/flex-config.xml ファイルで指定された名前付きのサービスです。
       showBusyCursor:Boolean
true の場合、サービスの実行中にビジーカーソルが表示されます。
       url:String
サービスの場所を表します。
       useProxy:Boolean
Flex のプロキシサービスを利用するかどうかを指定します。



イベント
faultエラーの発生時に実行される ActionScript コードです。target にはイベントをトリガしたコンポーネントへの参照が、type にはイベントの名前が格納されます。
result結果オブジェクトがある場合に実行される ActionScript コードです。target にはイベントをトリガしたコンポーネントへの参照が、type にはイベントの名前が格納されます。



メソッドの詳細

cancel

cancel( ) :  Void

既存の HTTP サービス呼び出しをすべてキャンセルします。


clearResult

clearResult( fireBindingEvent:Boolean) :  Void

HTTPService の result プロパティを null に設定します。これは呼び出しの結果が、既に使用されていない大きなオブジェクトであった場合に便利です。

パラメータ
    fireBindingEvent:Boolean - result にバインドしているものの更新が必要な場合は true、そうでない場合は false です。デフォルトは true です。


clearUsernamePassword

clearUsernamePassword( ) :  Void

以降の要求から、現在のユーザー名およびパスワードを削除します。


send

send( parameters:Object) :  Object

指定した URL に HTTP GET または HTTP POST 要求を送信します。

パラメータ
    parameters:Object - 指定した URL に渡すパラメータです。このパラメータはオプションであり、request プロパティの既存の設定内容をオーバーライドします。

戻り値
     複数の要求の追跡に使用できる HTTP 呼び出しです。


setUsernamePassword

setUsernamePassword( username:String, password:String) :  Void

ユーザー名およびパスワードを各要求の一部として送信します。ユーザー名およびパスワードのデータは、標準的な認証ヘッダでは送信されません。その代わり、データはプロキシサーブレットに送られ、そこでヘッダが作成されます。

パラメータ
    username:String - 送信するユーザー名です。
    password:String - 送信するパスワードです。


xmlDecode

xmlDecode( )

サービス結果を XML からデコードする際に使用される ActionScript 関数です。resultFormat がオブジェクトで、xmlDecode プロパティが設定されている場合、Flex では HTTPService から返される XML を使用してオブジェクトが作成されます。それが定義されていない場合は、デフォルトの XMLDecoder を使用してこの処理が実行されます。

xmlDecode プロパティで参照される関数は、XMLNode オブジェクトをパラメータとして取り、オブジェクトを返す必要があります。返されるオブジェクトはどのようなタイプでも構いませんが、必ずいずれかのオブジェクトが返される必要があります。null または undefined が返されると、処理が失敗します。


xmlEncode

xmlEncode( )

サービス要求を XML にエンコードする際に使用される ActionScript 関数です。要求の contentTypeapplication/xml で、渡された要求オブジェクトがオブジェクトである場合、Flex では xmlEncode プロパティで指定された関数によりそのオブジェクトの XML 変換が試みられます。xmlEncode プロパティが設定されていない場合、Flex ではデフォルトの XMLEncoder を使用してオブジェクトグラフが XML に変換されます。

xmlEncode プロパティはオブジェクトを取ります。このプロパティは XMLNode を返す必要があります。この場合、XMLNode オブジェクトは XMLNode のサブクラスである XML オブジェクトでも、<mx:XML> タグで取得できる XML オブジェクトの最初の子でも構いません。誤ったタイプのオブジェクトが返されると、処理が失敗します。



プロパティの詳細

concurrency

concurrency:String  

同一サービスに対する複数の呼び出しの処理方法を示す値です。デフォルト値は multiple です。使用できる値は次のとおりです。


contentType

contentType:String  

サービス要求のコンテンツタイプです。
使用できる値は次のとおりです。


method

method:String  

要求を送信するための HTTP メソッドです。使用できる値は GET および POST です。小文字の値は大文字に変換されます。デフォルト値は GET です。


protocol

protocol:String  

(MXML のみ、ランタイムプロパティではない) サービス要求に使用するプロトコルを指定します。使用できる値は http か https のいずれかです。デフォルト値は、ユーザーがアプリケーションをロードする際に使用するプロトコルです。HTTP で サービスされている Flex アプリケーションから HTTPS を介してサービスにアクセスするには、protocol プロパティを https に設定する必要があります。


request

request:Object  

URL に渡すパラメータとして使用される、名前と値のペアのオブジェクトです。contentType プロパティが application/xml に設定されている場合は、これを XML ドキュメントにする必要があります。


result

result:Object   [読み取り専用]

最後の要求の結果に対するアクセスを提供します。


resultFormat

resultFormat:String  

HTTP 呼び出しから返された結果を非直列化する方法を示す値です。この値は次の項目に基づいて決定します。 デフォルト値は object です。使用できる値は次のとおりです。


serviceName

serviceName:String  

サーバーの WEB-INF/flex/flex-config.xml ファイルで指定された名前付きのサービスです。url プロパティまたは serviceName プロパティのいずれかを使用します。両方は使用できません。


showBusyCursor

showBusyCursor:Boolean  

true の場合、サービスの実行中にビジーカーソルが表示されます。デフォルト値は false です。


url

url:String  

サービスの場所を表します。指定する URL には、クエリパラメータ (? の後に名前と値のペアが続く) を含めることはできません。ただし HTTP メソッドが GET で、 <mx:HTTPService> タグに要求パラメータが含まれない場合は、この限りではありません。現時点では、タグでなく ActionScript で URL を設定した場合のみ、URL にパラメータを追加できます。url プロパティまたは serviceName プロパティのいずれかを使用します。両方は使用できません。


useProxy

useProxy:Boolean  

Flex のプロキシサービスを利用するかどうかを指定します。デフォルト値は true です。false を指定した場合、対象 URL に Flash Player でアクセスできることを確認する必要があります。また、useProxy プロパティを false に設定すると、名前付きサービスは使用できません。


HttpServiceExample.mxml
<?xml version="1.0" encoding="utf-8"?>

<!-- この例をローカルで実行する手順です。
1. flex-config.xml ファイルを編集します。
Add httpService url under whitelist config for unnamed <http-service-proxy> services, as shown below:
      
<http-service-proxy>  
	<whitelist> 
<unnamed>			
<url>http://{localserver}/{your flex app folder path}/thisEmployee.xml</url>
</unnamed>
	</whitelist>
         ............
         ............
</http-service-proxy>
	  
2. thisEmployee.xml をコピーし、同じフォルダに HttpServiceExample.mxml として保存します。
	  
_ _ _ _ _ _ _ _ _thisEmployee.xml_ _ _ _ _ _ _ _ _
        
<?xml version="1.0" encoding="iso-8859-1" ?> 
<Company label="Macromedia">
<Branch label="Newton">
<Department label="Flex Doc">
<Name label="kapil"/>
</Department>
</Branch>
</Company>
_ _ _ _ _ _ _ _ _ _ _ end _ _ _ _ _ _ _ _ _ _ _ _ _ 

3. この例はこの後に実行されます。 -->

<!-- HttpService の使用方法を示す簡単な例 -->
<mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml" pageTitle="Employee Search Engine"
backgroundColor="#FFFFFF">

<mx:HTTPService id="srv" url="thisEmployee.xml"
fault="alert(event.fault.faultstring + ' \n' + 'Invalid Employee Name');"
result="alert('HTTPService responded!!!')">
</mx:HTTPService>

<mx:Script>
<![CDATA[

function Startsearch()
           {
srv.send();
           }
       ]]>
</mx:Script>

<mx:Panel title="Employee Search Engine" height="50%" width="40%">

<mx:Button label="Search" click="Startsearch();"/>
<mx:Label text="Employee Explorer:"/>
<mx:Tree dataProvider="{srv.result}" width="100%" height="100%"/>

</mx:Panel>

</mx:Application>