接続ファイル記述の構造
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<connects>
<connect>
<label>...</label>
<request>...</request>
<tpl>...</tpl>
<cookieId>...</cookieId>
<variables>
<variable>...</variable>
</variables>
<logFileName>...</logFileName>
</connect>
</connects>
connects
接続ファイル記述ドキュメントのルートエレメントです。
以下のように、子の<connect>を持ちます。
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<connects>
<connect>
...
</connect>
<connect>
...
</connect>
<connect>
...
</connect>
</connects>
connect
接続の設定を指定します。
接続は一つの<connect>ごとに独立していて、
指定された<tpl>(リクエストファイル)の全リクエストを終えると接続が完了し、
次の接続へと移ります。
パラメーター
- enable [オプション]
-
この接続を有効/無効にする設定をおこなえます。
"false"や"true"以外の値を設定すると、接続ファイルを読み込んだ際に自動で無効状態となります。
省略した場合のデフォルト値は"true"です。
label
接続名です。
デフォルト値は"接続名"です。
例:
<label>接続A</label>
tpl
request [必須]
リクエストファイルへのパスを指定します。
リクエストファイルへのパスは、
お使いのオペレーションシステムで設定されているファイルへのフルパスか、
接続ファイルからの相対パスを指定してください。
// フルパス
<request>C:\Documents and Settings\USER\My Documents\request.xml</request>
// 相対パス
// 接続ファイルと同じフォルダ内にある場合
<request>request.xml</request>
// 接続ファイルと同じフォルダにある"folder"というフォルダの中にある場合
<request>folder/request.xml</request>
// 接続ファイルを格納しているディレクトリと同じ階層にある場合
<request>../request.xml</request>
または、次のように直接リクエストを設定することも出来ます。
// リクエスト直接設定
<connect>
<label>接続</label>
<request>
<label>リクエスト</label>
<url>http://example.tld/</url>
</request>
</connect>
更に、次のように複数のリクエスト設定を読み込む事もできます。
// リクエストの複数読み込み
<connect>
<label>接続</label>
<request>request.xml</request>
<request>request.xml</request> // 同じファイルでもOK
<request>request2.xml</request>
// リクエストファイルと直接設定を混合させることも出来ます。
<request>
<label>リクエスト1</label>
<url>http://example.tld/</url>
</request>
</connect>
複数のリクエストを設定した場合、リクエストが実行される順番は設定された順番となります。
cookieId
Cookieを保存,使用する為のID(識別子)名を設定します。
設定できる値は40字以内の"connect-id-"以外から始まる文字列です。
この項目を設定をした場合、
Cookieのデータはその有効期限が過ぎるまでローカルストレージに保存され、
リクエストを送信する際に自動で使用されます。
また、複数の<connect>で、接続ファイルを跨いで、
同じcookieIdのCookieデータを使用する事が出来ます。
この項目が省略された接続のCookieは、
"connect-id-"の後にランダムな値が続くIDが自動で割り振られます。
このIDは接続ファイルに対して固有のIDとなっており、
接続ファイル内の,この項目が省略されたすべての<connect>に適用されます。
それにより、
Cookieデータは、接続ファイルに対して1つのCookieデータを持つことになります。
このCookieデータは独立しており、他の接続ファイルからアクセスする事は出来ません。
また、データの永続性は無く、アプリケーションの終了と共にこのデータは破棄されます。
// 接続ファイル 1 (最初に接続)
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<connects>
<connect>
<label>ログイン1</label>
<tpl>loggedin.tpl.xml</tpl>
<cookieId>account-A</cookieId> // CookieID指定
</connect>
<connect>
<label>ログイン2</label>
<tpl>loggedin.tpl.xml</tpl>
</connect>
<connects>
// 接続ファイル 2
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<connects>
<connect>
<label>マイページ1</label>
<tpl>mypage.tpl.xml</tpl>
<cookieId>account-A</cookieId> // ログイン1のCookieデータを使用
</connect>
<connect>
<label>マイページ2</label>
<tpl>mypage.tpl.xml</tpl>
</connect>
<connects>
// マイページ1 はログイン1の結果を引き継いでいます
// マイページ2 は非ログイン状態でアクセスします
variables
リクエストファイル内で使用できる変数を追加します。
より詳しい設定方法は<variable>をご覧ください。
例:
<variables>
<variable>...</variable>
<variable>...</variable>
<variable>...</variable>
</variables>
variable
リクエストファイル内で使用できる変数を指定します。
設定された変数は {%NAME%} として使用できます。
変数の有効範囲はその変数が設定された <connect> 内となり、
他の <connect> からはアクセスできません。
変数の寿命は、接続ファイルを閉じるか再度読み込むまで続きます。
{%__COOKIE_ID__%} | 現在接続中の <cookieId> を取得できます。 |
※"__"から始まる変数名は、ログに出力されません。
パラメーター
- name [必須]
-
設定する変数名です。
同一名の変数が指定された場合、変数は常に上書きされます。
<variable name="mail">hoge@example.tld</variable>
{%mail%} // "hoge@example.tld" が代入されます。
実際に使用するとこのようになります。
// 接続ファイル
<connect>
<tpl>request.tpl.xml</tpl>
<variables>
<variable name="URL">http://domain.tld/</variable>
<variable name="ID">usrname123</variable>
<variable name="PW">password123</variable>
<variable name="Interval">2-10</variable>
</variables>
</connect>
// リクエストファイル request.tpl.xml
<request>
<url>{%URL%}</url>
<params>
<variable name="user">{%ID%}</variable>
<variable name="password">{%PW%}</variable>
</params>
<intervals>{%Interval%}</intervals>
</request>
logFileName
出力されるログファイルの名前を指定します。
ログ内容は、上書きではなく末尾に追加されていきます。
毎回新しく作成したい場合は、毎回削除してご利用ください。
エラーが発生した場合、エラーログは必ず自動で出力されます。
ログが出力されるエラーは、リクエスト時の内部エラーや、
I/O Error や Security Error が発生したエラーなどです。
HttpStatusのエラー(例えば404エラー)はエラーログとして出力されないので注意してください。
ログファイル名は日付の後に指定された名前で作成されます。
指定が無い場合、日付のみの名前のファイルが作成されます。
エラーの際に出力されるエラーファイルも同様ですが、
日付の後に"Error"の文字列が付与されます。
※ログファイルはユーザーディレクトリに保管されます。
例:
<logFileName>接続A</logFileName>
// 結果は、 "2013-01-01___接続A.log" というファイル名で作成されます。