URLとソケットを操作するためのグローバルプロパティ
あなたがSenseTalkスクリプトでURL、ソケット、プロセスを操作している場合、以下のグローバルプロパティを使用して、タイムアウトの値とキャッシュの振る舞いを変更することができます。
SenseTalkでURLとソケットを操作する方法については、Socket, Process, and Stream Input and Output および URL Transactions and Formatting を参照してください。
ローカルプロパティとグローバルプロパティの値を設定または変更する:
SenseTalkのコマンド Set
または Put
を使用して、グローバルプロパティの値を設定できます。これらのプロパティを参照するときには、通常の変数と区別するために、プロパティ名の前に the
を付ける必要があります。
例:
set the searchrectangle to [1,2,2,3]
put 2 into the remoteworkinterval
あなたはこのようにしてグローバルプロパティ内の特定の名前付きプロパティを追加または変更することができます:
set the namedColors.pink to color("RGB,1.0,0.5,0.5") -- Adds pink to the namedColors global property and defines its RGB color value
set the listFormat's separator to " & " -- Sets the separator property of the listFormat global property
プロパティはまた、setoption
や setoptions
コマンドを使用して設定または更新することもできます。setoption
コマンドでは単一のプロパティを更新することができ、setoptions
コマンドでは複数のプロパティを更新することができます。
例:
setoption searchrectangle, [1,2,2,3]
setoptions {searchrectangle: [1,2,2,3], scriptlogging: yes}
setoption
とsetoptions
はグローバルプロパティとローカルプロパティの使用に特化しているため、これらのコマンドのコマンド構文においてプロパティ名からthe
という言葉を省略し ます。
ローカルとグローバルのプロパティの使用に関する追加情報については、SenseTalkのローカルおよびグローバルプロパティ を参照してください。
the URLCacheEnabled
グローバルプロパティ
値: True
、False
デフォルト: True
動作: このグローバルプロパティは、URLリソースから取得した内容をキャッシュするかどうかを制御します。True
に設定されている場合(デフォルト)、URLの内容はシステムによってキャッシュされ、毎回リモートで取得するのではなくキャッシュから取得されます。URLの新しいコピーをロードするためには、URLにアクセスする前に the URLCacheEnabled
プロパティを False
に設定します。
例:
set the URLCacheEnabled to false
例:
set the URLCacheEnabled to false
put url "http://www.apple.com" into appleHomePage -- Get a fresh copy
set the URLCacheEnabled to true -- Restore caching
the URLTimeout
グローバルプロパティ
値: 秒単位の時間値
デフォルト: 30秒
動作: このグローバルプロパティは、URLリソースのリクエストがタイムアウトするまでの最大時間を指定します。この時間制限を超過するか、インターネット接続が利用できない場合、または他のエラーが発生すると、the result()
関数はエラーを識別する例外オブジェクトを返し、スクリプトの次の行でアクセスできます。
例:
set the URLTimeout to 45
例:
set the URLTimeout to 10
put url "http://google.com"
the URLErrorLevel
グローバルプロパティ
値: 整数
デフォルト: 400
動作: このグローバルプロパティ値は、URLの内容を取得する際にエラーとして扱われる最低のURLステータスコードを示します。デフォルト値は400であるため、400以上のステータス値が返された場合は、例外をスローするか、result()
関数を例外に設定します(これは the throwExceptionResults
グローバルプロパティの現在の設定に依存します)。この種の例外が生成されないようにするために、the URLErrorLevel
をゼロ(または十分に大きな数)に設定できます。
例:
set the URLErrorLevel to 450
例:
set the URLErrorLevel to 300
set the throwExceptionResults to false
put url "http://localhost:8080/api/test"
put the result into Problem
if Problem Contains "401" then
log "Unauthorized."
else if Problem Contains "307" then
log "Redirected"
end if
the readTimeout
グローバルプロパティ
値: 秒単位の時間値
デフォルト: 30秒
動作: このプロパティは、ソケットの読み取り要求がデータを利用可能にするまでの最大時間を設定します。ソケットが制限時間内に利用できない場合、例外がスローされます。the readTimeout
で指定された時間内に要求されたデータが読み取られない場合、読み取られたものが何であれ返され、result()
関数は time out
を示すように設定されます。
例:
set the readTimeout to 60
例:
set the readtimeout to 5
open process "skype"
read from process "skype" until end // Tries reading the process for 5 seconds
put the result // Displays 'time out'
close process "skype"
関連: