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
 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
  

[概 要]

コンストラクタです.
HTTPServiceCore
  
addUrlParameter(key:String, value:Object):Object

[概 要]

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

[概 要]

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

[概 要]

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

[概 要]

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

[概 要]

ModelProcessEvent.SUCCESS発行回数を1増加させます.
BaseModel
 Inherited
run():void

[概 要]

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

[概 要]

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

[概 要]

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

[概 要]

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

[概 要]

HTTPリクエストを送信します.
HTTPServiceCore
 Inherited
onFailure(event:FaultEvent, 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
 Inherited
trap(e:Error):Error

[概 要]

run()内で発生した全例外をハンドリングするメソッドです.
BaseModel
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
Constructor detail
HTTPServiceCore()constructor
public function HTTPServiceCore()

[概 要]

コンストラクタです.

[詳 細]

以下の初期化を行います。
  1. httpMethod = "POST"
  2. resultFormat = RPCCore.OBJECT
  3. urlParameter = new URLVariables()

[備 考]

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
createConcreteService()method 
protected final override function createConcreteService():IEventDispatcher

[概 要]

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

[詳 細]

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

[備 考]

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

[概 要]

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

[詳 細]

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

[備 考]