LlRequestURL/ja
Jump to navigation
Jump to search
All Issues ~ Search JIRA for related Bugs
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
LSL ポータル | 関数 | イベント | 型 | 演算子 | 定数 | 実行制御 | スクリプトライブラリ | カテゴリ別スクリプトライブラリ | チュートリアル |
要約
関数: key llRequestURL( );
スクリプトで使用する 1 個の HTTP:// URL をリクエストします。リクエストの結果、 http_request イベントが発生します。
http_request イベントの中で結果を識別するために使用するハンドル値を key で返します。
警告
- 地域が (再) 起動されると、HTTP server の URL は自動的に解放され、使用できなくなります。
- CHANGED_REGION_START を使ってこれを検出し、新しい URL がリクエストされるようにしてください。
- 使用可能な URL の数には制限があります。言い換えると、スクリプトはそれだけの数の他で使用されていない URL を持つことができます。詳細は、LSL http_server#Resource Limitations を参照してください。
- URL を放棄するときには、常に llReleaseURL で解放するようにしてください。そうでないとメモリリークを起こします。
サンプル
このスクリプトは地域が再起動された後、新しい URL をリクエストします。
string url;
default {
state_entry() {
//URL をリクエストします
llRequestURL();
}
changed(integer What) {
//地域が再起動された場合
if (What & CHANGED_REGION_START) {
//新しい URL をリクエストします
llRequestURL();
}
}
http_request(key ID, string Method, string Body) {
if (Method == URL_REQUEST_GRANTED) {
//URL を持ち主に発言します
url = Body;
llOwnerSay(url);
} else if (Method == URL_REQUEST_DENIED) {
llOwnerSay("No URLs free !");
} else if (Method == "GET") {
llHTTPResponse(ID, 200, "Hello there !");
}
}
}
覚えておきたい重要なことは、他の URL をリクエストして、以前のものが解放されていないと、使用中のまま残るということです。次のスクリプトは典型的な例です。
次のコードは、自分の土地で全ての URL を使用することができる場合にのみ試してください。 プリム/スクリプトを削除すると、割り当てられた URL が全て解放されます。
//全ての割り当て可能な URL を一気に割り当てます
//癇に障ります
//スクリプトを削除するか、プリム/オブジェクトを取り払うと、URL が解放されます
default {
state_entry() {
//URL をリクエストします
llRequestURL();
}
http_request(key ID, string Method, string Body) {
if (Method == URL_REQUEST_GRANTED) {
//新しい URL アドレスと空き URL 数を表示します
llSetText( (string)llGetFreeURLs() + "\n" + Body, <1, 1, 1 >, 1);
//URL をリクエストします
llRequestURL();
} else if (Method == URL_REQUEST_DENIED) {
llSetText("No URLs free !", <1, 0, 0 >, 1);
} else if (Method == "GET") {
llHTTPResponse(ID, 200, "Hello there !");
}
}
}
このスクリプトは、もうおわかりのように、以前の URL を削除せずに新しい URL をリクエストしているので、土地で使用できる全ての URL を使い切ります。
とにかく、以前の URL をグローバル変数に入れておき、llReleaseURL で解放するようにしてください。関連項目
関数
• | llRequestSecureURL | |||
• | llGetFreeURLs | |||
• | llReleaseURL | |||
• | llHTTPResponse | |||
• | llGetHTTPHeader |
記事
• | LSL http server |
特記事項
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。