API version 4
iOSAndroidWindows
説明 |
WEBサーバからCRSファイルをダウンロードして実行します。
URLで指定した対象のCRSファイルを、以下の順に検索します。 (1)既にローカルコンピュータにキャッシュされていれば、キャッシュから読み出します。 (2)事前にimportしたCRSアーカイブ(CARファイル)に含まれていれば、アーカイブから読み出します。 (3)WEBサーバにリクエストを送信し、CRSファイルを取得します。
取得した内容は、直ちにCRSスクリプトとして実行されます。WEBサーバから取得したCRSファイルは、可能であればキャッシュに保存します。 キャッシュの制御については、後述のHTTPヘッダによるキャッシュの制御を参照してください。
paramを指定しない場合は、リクエストはHTTPのGETで送られます。 paramを指定した場合は、リクエストはHTTPのPOSTで送られます。
WEBサーバがHTTPステータスコードに200($HTTP_OK)を返さない場合は、CRS-331の例外が発生します。 また、HTTPレスポンスヘッダを利用して任意の例外を発生させることが可能です。 詳細はNetObject.Getを参照してください。
取得したCRSスクリプトのカレントスコープ(this)は、Getメソッドを実行したオブジェクトになります。例えば、ButtonクラスのOnTouchイベントハンドラ内でGetメソッドを実行すると、Buttonオブジェクトの子としてオブジェクトが生成されます。画面(Formクラス)を定義したCRSを取得するときは、Rootオブジェクト(//)やFormオブジェクトでGetメソッドを実行するのが一般的です。
取得したCRSスクリプトの実行が完了するまでGetメソッドは復帰しません。
Android版
|
|
呼出形式 |
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メソッドを実行するCRSがhttp://server/path1/form1.crsからダウンロードされた場合 Get("/path2/form2.crs"); ↓ Get("http://server/path2/form2.crs")
相対パス指定 "/"で始まらないURLは相対パスとなります。Getメソッドを実行したCRSファイルをダウンロードしたサーバの同じパスにリクエストを送信します。 例)Getメソッドを実行するCRSがhttp://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"); }
|
|
関連項目 |
Cache、CsvDocument.Getメソッド |
種類 |
説明 |
---|---|
文字列リテラル 例)"key=100"、"abc" |
指定した文字列に"="が含まれるときは、"="の左側をパラメータ名、右側をデータ値とします。 "="が含まれないときは、"argN"(Nはパラメータの位置に応じた数字)をパラメータ名、文字列全体をデータ値とします。 |
数値リテラル 例)100、1.2 |
"argN"(Nはパラメータの位置に応じた数字)をパラメータ名、Number型の標準フォーマットで変換した文字列をデータ値とします。 |
String |
オブジェクト名をパラメータ名、Valueプロパティの文字列全体をデータ値とします。 |
Number Date |
オブジェクト名をパラメータ名、Valueプロパティをデータ値とします。 Valueプロパティの値はデータ型に応じた標準フォーマットで文字列に変換されます。 |
Spread PulldownList OptionButton ListBox(単一選択) |
単一選択系の複合オブジェクトです。 オブジェクト名をパラメータ名、Valueプロパティをデータ値とします。 Valueプロパティは現在選択されている要素を表します。要素が選択されていないときは-1となります。 Valueプロパティの値は文字列に変換されます。 |
CheckBox ListBox(複数選択) |
複数選択系の複合オブジェクトです。 オブジェクト名をパラメータ名、個々の要素(CheckItem、ListItem)のSelectedプロパティをデータ値とします。 パラメータは、すべての要素に対して生成されます。 例) CheckBox CheckBox1 { CheckItem item[3]; } この例では、"CheckBox1"という同じ名前のパラメータを3つ生成し、item[0].Selected、item[1].Selected、item[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つのパラメータを生成し、それぞれのデフォルトプロパティをデータ値とします。 デフォルトプロパティの値はデータ型に応じた標準フォーマットで文字列に変換されます。 |
上記以外のオブジェクト |
オブジェクト名をパラメータ名、デフォルトプロパティをデータ値とします。 デフォルトプロパティの値はデータ型に応じた標準フォーマットで文字列に変換されます。 |
サーバから返されるHTTPレスポンスのヘッダに、標準のHTTPヘッダであるCache-Controlヘッダ、Pragmaヘッダによるno-cacheの指定があると、Biz/Browserは取得したファイルをキャッシュません。
Cache-Control: no-cache Pragma: no-cache
Biz/Browser固有のヘッダであるCRS-Cache-Controlヘッダは、標準のHTTPヘッダによるキャッシュ制御(Cache-Control、Pragmaヘッダ)より優先してキャッシュを制御できます。
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ステータスコードが200($HTTP_OK)のレスポンスヘッダにCRS-Exceptionヘッダを指定することで、正常な通信でも例外を発生させることができます。
CRS-Exceptionヘッダは次の書式で指定します。
CRS-Exception: Method:メソッド; Code:コード; Message:メッセージ;
Method、Code、Messageは、Exceptionクラスの同名のプロパティに対応しています。
Methodの内容はMethodプロパティに設定されます。Methodを指定しない場合は"Server-Error"となります。
Codeの内容はCodeプロパティに設定されます。Codeを指定しない場合は0となります。
Messageの内容はMessageプロパティに設定されます。Messageを指定しない場合はCRS-Exceptionヘッダ全体がMessageに設定されます。
発生する例外のExceptionオブジェクトは、CRS-331例外と同じ構造を持ち、同じ情報(RequestURL、StatusCodeなど)が格納されます。