NetObject.Getメソッド

 

説明

WEBサーバからCRSファイルをダウンロードして実行します。

 

URLで指定した対象のCRSファイルを、以下の順に検索します。

(1)既にローカルコンピュータにキャッシュされていれば、キャッシュから読み出します。

(2)事前にimportしたCRSアーカイブCARファイル)に含まれていれば、アーカイブから読み出します。

(3)WEBサーバにリクエストを送信し、CRSファイルを取得します。

 

取得した内容は、直ちにCRSスクリプトとして実行されます。WEBサーバから取得したCRSファイルは、可能であればキャッシュに保存します。

キャッシュの制御については、後述のHTTPヘッダによるキャッシュの制御を参照してください。

 

paramを指定しない場合は、リクエストはHTTPGETで送られます。

paramを指定した場合は、リクエストはHTTPPOSTで送られます。

 

WEBサーバがHTTPステータスコードに200$HTTP_OK)を返さない場合は、CRS-331の例外が発生します。

よりHTTPレスポンスヘッダを利用して任意の例外を発生させることが可能になりました。詳細は後述のHTTPヘッダによる例外の制御を参照してください。

 

取得したCRSスクリプトのカレントスコープ(this)は、Getメソッドを実行したオブジェクトになります。例えば、ButtonクラスのOnTouchイベントハンドラ内でGetメソッドを実行すると、Buttonオブジェクトの子としてオブジェクトが生成されます。画面(Formクラス)を定義したCRSを取得するときは、Rootオブジェクト(//)やFormオブジェクトでGetメソッドを実行するのが一般的です。

 

取得したCRSスクリプトの実行が完了するまでGetメソッドは復帰しません。

 

呼出形式

obj.Get( URL [, param1 [, param2 [, ... ] ] ] )

 

戻り値

なし

 

引数

String URL

CRSファイルのURL

URLは以下の規則で決定します。

 

プロトコルから指定

http://などのプロトコルから指定すると、そのままリクエストを送信します。

URLをホスト名から始めることはできません。ホスト名を指定したい場合は必ずプロトコルから指定します。

例)

Get("http://server/path/form1.crs");
Get("https://server/path/form1.crs");

 

絶対パス指定

"/"で始まるURLは絶対パスとなります。Getメソッドを実行したCRSファイルをダウンロードしたサーバにリクエストを送信します。

例)Getメソッドを実行するCRShttp://server/path1/form1.crsからダウンロードされた場合

Get("/path2/form2.crs");
Get("http://server/path2/form2.crs")

 

相対パス指定

"/"で始まらないURLは相対パスとなります。Getメソッドを実行したCRSファイルをダウンロードしたサーバの同じパスにリクエストを送信します。

例)Getメソッドを実行するCRShttp://server/path/form1.crsからダウンロードされた場合

Get("form3.crs");
Get("http://server/path/form3.crs")

 

SYSオブジェクトAPPROOTプロパティを使用すると、相対パス指定で上記とは異なる動作をします。APPROOTプロパティはバージョン3.0より前のバージョンとの互換性のために残されているので、新しいプログラムでは使用しないでください。

 

 

Object param

リクエストに付加するパラメータ

指定できるパラメータの数に制限はありません。

パラメータに指定するオブジェクトの種類ごとの変換規則に従い、文字列に変換されてリクエストに付加されます。

 

例外

CRS-331

通信エラー

Exceptionオブジェクトは以下の構造を持ちます。

 

Exception {
    String RequestURL;  /* 例外を起こしたリクエストのURL */
    Number StatusCode;  /* HTTPステータスコード */
    String ContentType; /* HTTPヘッダのContent-Type */
    String Body;        /* レスポンスボディ */
}

 

使用例

Function OnTouch(e) {
    //.Form1.Delete();
    //.Get("Form2.crs");
}

 

関連項目

CacheCsvDocument.Getメソッド

 

 

 

paramに指定するオブジェクトの種類ごとの変換規則

 

種類

説明

文字列リテラル

例)"key=100""abc"

指定した文字列に"="が含まれるときは、"="の左側をパラメータ名、右側をデータ値とします。

"="が含まれないときは、"argN"Nはパラメータの位置に応じた数字)をパラメータ名、文字列全体をデータ値とします。

数値リテラル

例)1001.2

"argN"Nはパラメータの位置に応じた数字)をパラメータ名、Number型の標準フォーマットで変換した文字列をデータ値とします。

String

UString

オブジェクト名をパラメータ名、Valueプロパティの文字列全体をデータ値とします。UStringStringに変換されます。

より無名オブジェクトを指定した場合は文字列リテラルと同じ動作になりました。

Number

Fixed

Date

オブジェクト名をパラメータ名、Valueプロパティをデータ値とします。

Valueプロパティの値はデータ型に応じた標準フォーマットで文字列に変換されます。

より無名オブジェクトを指定した場合はパラメータ名に"argN"Nはパラメータの位置に応じた数字)を使用します。

Spread

PulldownList

OptionButton

ListBox(単一選択)

単一選択系の複合オブジェクトです。

オブジェクト名をパラメータ名、Valueプロパティをデータ値とします。

Valueプロパティは現在選択されている要素を表します。要素が選択されていないときは-1となります。

Valueプロパティの値は文字列に変換されます。

CheckBox

ListBox(複数選択)

複数選択系の複合オブジェクトです。

オブジェクト名をパラメータ名、個々の要素(CheckItemListItem)のSelectedプロパティをデータ値とします。

パラメータは、すべての要素に対して生成されます。

例)

CheckBox CheckBox1 {
   CheckItem item[3];
}

この例では、"CheckBox1"という同じ名前のパラメータを3つ生成し、item[0].Selecteditem[1].Selecteditem[2].Selectedをデータ値とします。

選択状態の場合は"1"、非選択状態の場合は"0"になります。

Root

Dialog

Doc

Form

Record

TabForm

SplitterFrame

SplitterForm

GraphAxis

SpreadRow

子オブジェクトを検索し、検索されたすべてのオブジェクトをパラメータとします。

オブジェクト名をパラメータ名、デフォルトプロパティをデータ値とします。

例)

Form Form1 {
   Button Button1;
   Label Label1;
   String String1;
}

この例では、"Button1"" Label1""String1"という名前の3つのパラメータを生成し、それぞれのデフォルトプロパティをデータ値とします。

デフォルトプロパティの値はデータ型に応じた標準フォーマットで文字列に変換されます。

上記以外のオブジェクト

オブジェクト名をパラメータ名、デフォルトプロパティをデータ値とします。

デフォルトプロパティの値はデータ型に応じた標準フォーマットで文字列に変換されます。

より無名オブジェクトを指定した場合はパラメータ名に"argN"Nはパラメータの位置に応じた数字)を使用します。

 

 

HTTPヘッダによるキャッシュの制御

 

サーバから返されるHTTPレスポンスのヘッダに、標準のHTTPヘッダであるCache-Controlヘッダ、Pragmaヘッダによるno-cacheの指定があると、Biz/Browserは取得したファイルをキャッシュません。

Cache-Control: no-cache
Pragma: no-cache

 

以降の追加機能--->

Biz/Browser固有のヘッダであるCRS-Cache-Controlヘッダは、標準のHTTPヘッダによるキャッシュ制御(Cache-ControlPragmaヘッダ)より優先してキャッシュを制御できます。

 
CRS-Cache-Control: no-cache
または
CRS-Cache-Control: cache
 

CRS-Cache-Controlヘッダにno-cacheが指定されているときはキャッシュしません。cacheが指定されているときはキャッシュします。

この機能は、HTTPメッセージを中継するプロキシサーバなどとBiz/Browserで異なるキャッシュ制御を行いたいときに利用できます。例えば、Cache-Controlヘッダにno-cacheを指定し、CRS-Cache-Control ヘッダにcacheを指定すると、中継するプロキシサーバではキャッシュされず、Biz/Browserはキャッシュする動作を指示することができます。

<--- ここまで

 

 

HTTPヘッダによる例外の制御

 

以降の追加機能 --->

サーバから返されるHTTPレスポンスのヘッダを利用して、任意の例外を発生させることができます。この機能はアプリケーション独自の通信エラー処理に利用できます。

HTTPステータスコードが200$HTTP_OK)のレスポンスヘッダにCRS-Exceptionヘッダを指定することで、正常な通信でも例外を発生させることができます。

 

CRS-Exceptionヘッダは次の書式で指定します。

 

CRS-Exception: Method:メソッド; Code:コード; Message:メッセージ;

 

MethodCodeMessageは、Exceptionクラスの同名のプロパティに対応しています。

Methodの内容はMethodプロパティに設定されます。Methodを指定しない場合は"Server-Error"となります。

Codeの内容はCodeプロパティに設定されます。Codeを指定しない場合は0となります。

Messageの内容はMessageプロパティに設定されます。Messageを指定しない場合はCRS-Exceptionヘッダ全体がMessageに設定されます。

 

発生する例外のExceptionオブジェクトは、CRS-331例外と同じ構造を持ち、同じ情報(RequestURLStatusCodeなど)が格納されます。

<--- ここまで

 



「オンラインマニュアル」一覧へ戻る
「Bizの宝箱」TOPへ戻る