URLトランザクションとフォーマット
このセクションでは、SenseTalkを使用して、そのURLを通じてインターネット上のリソースにアクセスする方法について説明します。このメカニズムを通じて、SenseTalkはインターネット全体のファイルやウェブサイトの内容にアクセスし、標準プロトコルを使用してリモートサーバーと通信することができます。
標準的なURLフォーマット間で情報を変換するために使いやすいいくつかのサポート関数が用意されています。
スクリプト内でURLリソースを参照する
スクリプト内でURLを通じてアクセスしたファイルやその他のインターネットリソースを参照するには、ファイルやリソースのURLを評価する式に続いて url
という単語を使用します。
urlString は“file:”、“http:”、または“ftp:”タイプのURLである可能性があります。 “file:”タイプのURLはコンテナとして扱うことができます - ファイルへの書き込みアクセスがある場合、その内容を保存したり変更したりすることができます。 urlPropertyList を使用する場合、それは makeURL()
関数によって定義される“scheme”、“host”、“path”、“query”などのキーを含むことができます。
この構文を使用してインターネットからhttpリソースを取得するとき、http GET操作が使用されます。 urlString または urlPropertyList には、フォームを提出することをシミュレートするためのクエリデータを含めることができます。文字列を使用する場合、makeURL()
関数を使用して正しくフォーマットされたクエリを含む文字列を簡単に構築することができます。
with headers headerPropertyList が指定されている場合、headerPropertyList はそのURLにアクセスする際に使用するカスタムHTTPヘッダーを含むプロパティリストであるべきです。カスタムヘッダー情報は、GET(URLにアクセスするとき)とPOST(post
コマンドを使用するとき)の両方の操作に対して任意の標準ヘッダーと一緒に渡されます。
URLにアクセスした後、スクリプトの次の行で result() 関数を呼び出すことで、リモート操作のステータスを確認することができます。これは、リクエストのステータス値がエラーとして扱われる最小レベル(the URLErrorLevel
グローバルプロパティによって指定された)未満の場合、またはステータスがそのレベルまたはそれ以上であり、the throwExceptionResults
がfalseに設定されている場合、例外を返します。
URLから取得したデータは、the defaultStringEncoding
グローバルプロパティの現在の設定に従ってテキストとして解釈されます。URLデータを取得する前に、このプロパティを正しいエンコーディング(通常は "UTF8")に設定します。
構文:
url urlString {with headers headerPropertyList}
url urlPropertyList {with headers headerPropertyList}
例:
url "http://www.somewhere.com/somepage" を htmlContents に put
htmlContents を url "file://localhost/localCopy" に put
例:
{scheme:"http", host:"www.apple.com"} を applePage に put
URL動作の設定
SenseTalkには、スクリプトからアクセスするURLの動作に影響を与えるために使用できるいくつ かのグローバルプロパティが含まれています。
the URLCacheEnabled
: URLリソースから取得した内容がキャッシュされるかどうかを制御します。the URLTimeout
: URLリクエストがタイムアウトする前の最大時間を指定します。the URLErrorLevel
: URLの内容を取得する際にエラーとして扱われる最低のURLステータス値を設定します。
これらのグローバルプロパティは、それぞれURLとソケットのためのグローバルプロパティで詳しく説明されています。
インターネットとURLのコマンドと関数
SenseTalkは、インターネット上でトランザクションを行ったり、URLやデータを標準フォーマットで操作したりするためのいくつかのコマンドと関数を提供しています。
post
コマンドは、URLにデータを投稿し、結果を取得します。makeURL()
関数は、指定された一連のコンポーネントから適切に形成されたURL文字列を作成するのに役立ち、そのコンパニオンであるextractURL()
関数は、URL文字列からコンポーネントを抽出します。URLEncodeおよびURLDecode関数は、URLのクエリやネットワークを通じて渡されるデータで一般的に使用される特殊なエンコード形式へのテキストの変換とその変換を行います。