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リクエスト送信、レスポンス受信を行います。

[備 考]

View the examples



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
[override] [概 要] キャッシュモード実行時、通信オブジェクトを識別する為のIDを返却します.
HTTPServiceCore
  
createConcreteService():IEventDispatcher
[override] [概 要] 具象通信オブジェクトを作成します.
HTTPServiceCore
 Inherited
faultHandler(event:FaultEvent):void
[概 要] 受信失敗ハンドラです.
RPCCore
 Inherited
[概 要] run()が終了したタイミングでテンプレートコールされるメソッドです.
BaseModel
  
[override] [概 要] 通信成功、失敗に関わらずコールされます.
HTTPServiceCore
 Inherited
mainProc():void
[override] [概 要] メイン処理メソッドです.
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
[override] [概 要] HTTPリクエストを送信します.
HTTPServiceCore
 Inherited
trap(e:Error):Error
[override] [概 要] 非同期通信開始前のエラーをハンドリングします.
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

[概 要]

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

[詳 細]

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

[備 考]

The default value is "POST".


Implementation
    public function get httpMethod():String
    public function set httpMethod(value:String):void
resultFormatproperty 
resultFormat:String

[概 要]

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

[詳 細]

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

[備 考]

The default value is object.


Implementation
    public function get resultFormat():String
    public function set resultFormat(value:String):void

See also

urlproperty 
url:String

[概 要]

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

[詳 細]

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

[備 考]


Implementation
    public function get url():String
    public function set url(value:String):void
urlParameterproperty 
urlParameter:Object

[概 要]

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

[詳 細]

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

[備 考]


Implementation
    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]の状態で パラメータが生成されます。

Parameters

key:String — URLパラメータキー
 
value:Object — URLパラメータ値

Returns
Object
cacheId()method 
override protected function cacheId():String

[概 要]

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

[詳 細]

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

[備 考]

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

[概 要]

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

[詳 細]

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

[備 考]

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

[概 要]

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

[詳 細]

処理は有りません。

[備 考]

通信終了処理実装はonFinishをオーバーライドしてください。

send()method 
override protected function send(dispatcher:IEventDispatcher):Object

[概 要]

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

[詳 細]

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

[備 考]

Parameters

dispatcher:IEventDispatcher

Returns
Object — AsyncToken
Examples
リモートサーバから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.