Packagejp.co.fujitsu.reffi.client.flex.model.rpc
Classpublic class HTTPServiceCore
InheritanceHTTPServiceCore Inheritance RPCCore Inheritance BaseModel Inheritance flash.events.EventDispatcher

[概 要]

HTTPServiceによるサーバアクセスを行う機能モデルクラスです.

[詳 細]

アクセス先URL指定、アクセスメソッド指定(デフォルト:POST)、 返却フォーマット指定(デフォルト:object)、URLパラメータ指定を行い、
HTTPリクエスト送信、レスポンス受信を行います。

[備 考]



リモートサーバからXMLデータを受信する 受信するデータ
   <?xml version="1.0" encoding="UTF-8"?>
   <employees>
       <employee>
          <name>yamada taro</name>
          <age>32</age>
       </employee>
       <employee>
           <name>suzuki ichiro</name>
           <age>35</age>
       </employee>
   </employees>
  
HTTPServiceCoreを使用して受信処理を実装したアクション
   package demo.client.form.action {
       import flash.events.Event;
  
       import jp.co.fujitsu.reffi.client.flex.action.BaseAction;
       import jp.co.fujitsu.reffi.client.flex.controller.ParameterMapping;
       import jp.co.fujitsu.reffi.client.flex.model.BaseModel;
       import jp.co.fujitsu.reffi.client.flex.model.events.ModelProcessEvent;
       import jp.co.fujitsu.reffi.client.flex.model.rpc.HTTPServiceCore;
       import jp.co.fujitsu.reffi.client.flex.model.rpc.RPCCore;
   
       import mx.rpc.events.ResultEvent;
  
      public class SendAction extends BaseAction {
   
           // ①HTTP通信の為の機能モデルを登録します
           override protected function reserveModels(models:Array):void {
               models.push(Class(HTTPServiceCore));
           }
  
           // ②コントローラによってインスタンス化された機能モデルの設定を行います(サーバロジックは任意)
           override public function nextModel(index:int, prev:ModelProcessEvent, next:BaseModel):Boolean {
               switch(index) {
                   case 0:
                       HTTPServiceCore(next).url ="webController";
                       HTTPServiceCore(next).addUrlParameter("model.fqcn", "demo.rpc.model.DummyRestResponseModel");
                       HTTPServiceCore(next).addUrlParameter("forward.page", "DummyRestResponse.xml");
                       HTTPServiceCore(next).resultFormat = RPCCore.E4X;
                       break;
               }
               return true;
           }
   
           // ③受信結果を取得します
           override public function successForward(index:int, model:BaseModel, resultEvent:Event):void {
               trace(ResultEvent(resultEvent).result.employee[0].name);
           }
       }
   }
  
実行結果
  yamada taro
  

Copyright (c) 2008-2009 FUJITSU Japan All rights reserved.



Public Properties
 PropertyDefined by
 InheritedasyncToken : Object

[概 要]

非同期通信トークンです.
RPCCore
 Inheritedcache : Dictionary
[static]

[概 要]

static通信オブジェクトキャッシュプロパティです.
RPCCore
 InheritedcacheMode : Boolean

[概 要]

通信先が同じであれば各種通信オブジェクトをキャッシュします.
RPCCore
 Inheritedcontroller : BaseController

[概 要]

このモデルを起動したコントローラインスタンスです.
BaseModel
 InheritedexecuteIndex : int

[概 要]

実行インデックス設定.
BaseModel
  httpMethod : String

[概 要]

HTTPアクセスメソッドです.
HTTPServiceCore
 InheritedparameterMapping : ParameterMapping

[概 要]

MVC各レイヤを伝播するパラメータオブジェクトです.
BaseModel
  resultFormat : String

[概 要]

受信データフォーマットです.
HTTPServiceCore
 Inheritedservice : IEventDispatcher

[概 要]

継承先で定義される、各種通信オブジェクトのI/Fです.
RPCCore
 Inheritedskip : Boolean

[概 要]

このモデルを実行するか、コントローラが判断する為のフラグです.
BaseModel
 InheritedsuccessCount : int

[概 要]

モデルインスタンス生存中に、何回モデル処理が成功したかを保持します.
BaseModel
  url : String

[概 要]

アクセスを行う対象URLです.
HTTPServiceCore
  urlParameter : Object

[概 要]

リクエストする際のURLパラメータです.
HTTPServiceCore
Public Methods
 MethodDefined by
  
addUrlParameter(key:String, value:Object):Object

[概 要]

URLパラメータにパラメータを追加します.
HTTPServiceCore
 Inherited

[概 要]

モデル処理失敗イベントを発行するメソッドです.
BaseModel
 Inherited

[概 要]

モデル処理完了イベントを発行するメソッドです.
BaseModel
 Inherited

[概 要]

モデル処理成功イベントを発行するメソッドです.
BaseModel
 Inherited

[概 要]

ModelProcessEvent.SUCCESS発行回数を1増加させます.
BaseModel
 Inherited
[static]

[概 要]

通信オブジェクトキャッシュを全て削除します.
RPCCore
 Inherited
removeCache(cacheId:String):void
[static]

[概 要]

通信オブジェクトキャッシュを削除します.
RPCCore
 Inherited
run():void

[概 要]

コントローラにコールされるモデルの主幹メソッドです.
BaseModel
Protected Methods
 MethodDefined by
  
cacheId():String

[概 要]

キャッシュモード実行時、通信オブジェクトを識別する為のIDを返却します.
HTTPServiceCore
  
createConcreteService():IEventDispatcher

[概 要]

具象通信オブジェクトを作成します.
HTTPServiceCore
 Inherited
faultHandler(event:FaultEvent):void

[概 要]

受信失敗ハンドラです.
RPCCore
 Inherited
finallyProc():void

[概 要]

run()が終了したタイミングでテンプレートコールされるメソッドです.
BaseModel
  

[概 要]

通信成功、失敗に関わらずコールされます.
HTTPServiceCore
 Inherited
mainProc():void

[概 要]

メイン処理メソッドです.
RPCCore
 Inherited
onFailure(event:FaultEvent, parameterMapping:ParameterMapping):void

[概 要]

受信失敗処理用オーバーライドメソッドです.
RPCCore
 Inherited
onFinish(parameterMapping:ParameterMapping):void

[概 要]

通信終了処理実装メソッドです.
RPCCore
 Inherited
onSuccess(event:ResultEvent, parameterMapping:ParameterMapping):void

[概 要]

受信成功処理用オーバーライドメソッドです.
RPCCore
 Inherited
postProc():void

[概 要]

後処理テンプレートメソッドです.
BaseModel
 Inherited
preProc():Boolean

[概 要]

前処理テンプレートメソッドです.
BaseModel
 Inherited
resultHandler(event:ResultEvent):void

[概 要]

受信成功ハンドラです.
RPCCore
  
send(dispatcher:IEventDispatcher):Object

[概 要]

HTTPリクエストを送信します.
HTTPServiceCore
 Inherited
trap(e:Error):Error

[概 要]

非同期通信開始前のエラーをハンドリングします.
RPCCore
Public Constants
 ConstantDefined by
 InheritedE4X : String = "e4x"
[static] レスポンス返却フォーマット「e4x」を示す定数です.
RPCCore
 InheritedOBJECT : String = "object"
[static] レスポンス返却フォーマット「object」を示す定数です.
RPCCore
 InheritedXML : String = "xml"
[static] レスポンス返却フォーマット「xml」を示す定数です.
RPCCore
Property detail
httpMethodproperty
httpMethod:String  [read-write]

[概 要]

HTTPアクセスメソッドです.

[詳 細]

POST、GETを文字列指定します。

[備 考]

The default value is "POST".

実装
    public function get httpMethod():String
    public function set httpMethod(value:String):void
resultFormatproperty 
resultFormat:String  [read-write]

[概 要]

受信データフォーマットです.

[詳 細]

「object」「e4x」「xml」が指定可能です。

[備 考]

The default value is object.

実装
    public function get resultFormat():String
    public function set resultFormat(value:String):void

関連項目

urlproperty 
url:String  [read-write]

[概 要]

アクセスを行う対象URLです.

[詳 細]

同コンテキストルートにアクセスする場合、ドメイン指定は不要です。

[備 考]

実装
    public function get url():String
    public function set url(value:String):void
urlParameterproperty 
urlParameter:Object  [read-write]

[概 要]

リクエストする際のURLパラメータです.

[詳 細]

このプロパティに設定されたキー=値のセットが送信時のURLパラメタータとして適用されます。

[備 考]

実装
    public function get urlParameter():Object
    public function set urlParameter(value:Object):void
Method detail
addUrlParameter()method
public function addUrlParameter(key:String, value:Object):Object

[概 要]

URLパラメータにパラメータを追加します.

[詳 細]

引数key = 引数valueの形式でurlParameterプロパティに新規パラメータを追加します。

[備 考]

valueが配列の場合は引数key=引数value[0]&引数key=引数value[1]の状態で パラメータが生成されます。 パラメータ
key:String — URLパラメータキー
 
value:Object — URLパラメータ値

戻り値
Object
cacheId()method 
protected override function cacheId():String

[概 要]

キャッシュモード実行時、通信オブジェクトを識別する為のIDを返却します.

[詳 細]

urlプロパティを返却します。
cacheIdはcacheModeプロパティがtrueの場合のみ使用されます。

[備 考]

戻り値
String — 通信オブジェクトを識別する為のキャッシュID
createConcreteService()method 
protected final override function createConcreteService():IEventDispatcher

[概 要]

具象通信オブジェクトを作成します.

[詳 細]

HTTPServiceオブジェクトを生成して返却します。

[備 考]

戻り値
IEventDispatcher — HTTPServiceオブジェクト
finishConnect()method 
protected final override function finishConnect():void

[概 要]

通信成功、失敗に関わらずコールされます.

[詳 細]

処理は有りません。

[備 考]

通信終了処理実装はonFinishをオーバーライドしてください。
send()method 
protected override function send(dispatcher:IEventDispatcher):Object

[概 要]

HTTPリクエストを送信します.

[詳 細]

urlプロパティ値に対して、httpMethodプロパティ値で、urlParameterプロパティ値を 引数にしてリクエストを送信します。
受信した値にアクセスする為の型としてresultFormatプロパティ値が適用されます。

[備 考]

パラメータ
dispatcher:IEventDispatcher

戻り値
Object — AsyncToken