メインコンテンツまでスキップ

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

プロパティはまた、setoptionsetoptions コマンドを使用して設定または更新することもできます。setoption コマンドでは単一のプロパティを更新することができ、setoptions コマンドでは複数のプロパティを更新することができます。

例:

setoption searchrectangle, [1,2,2,3]
setoptions {searchrectangle: [1,2,2,3], scriptlogging: yes}
ノート

setoptionsetoptionsはグローバルプロパティとローカルプロパティの使用に特化しているため、これらのコマンドのコマンド構文においてプロパティ名からtheという言葉を省略します。

ローカルとグローバルのプロパティの使用に関する追加情報については、SenseTalkのローカルおよびグローバルプロパティ を参照してください。

the URLCacheEnabled グローバルプロパティ

値: TrueFalse

デフォルト: 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"

関連: