Difference between revisions of "LlRequestURL/ja"
Jump to navigation
Jump to search
Mako Nozaki (talk | contribs) (カテゴリ付加) |
Mako Nozaki (talk | contribs) |
||
Line 84: | Line 84: | ||
|history= | |history= | ||
*{{SVN|1836|rev=112899 |trunk=*|anchor=file22|ver=|ser=}} | *{{SVN|1836|rev=112899 |trunk=*|anchor=file22|ver=|ser=}} | ||
|cat1=HTTP | |cat1=HTTP/ja | ||
|cat2=HTTP/Server | |cat2=HTTP/Server/ja | ||
|cat3 | |cat3 | ||
|cat4 | |cat4 | ||
}} | }} | ||
Revision as of 04:21, 10 April 2010
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 をリクエストします。 <LSL>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 !"); } }
}</LSL> 覚えておきたい重要なことは、他の URL をリクエストして、以前のものが解放されていないと、使用中のまま残るということです。次のスクリプトは典型的な例です。
次のコードは、自分の土地で全ての URL を使用することができる場合にのみ試してください。 プリム/スクリプトを削除すると、割り当てられた URL が全て解放されます。 <LSL>//全ての割り当て可能な 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 !"); } }
}</LSL> このスクリプトは、もうおわかりのように、以前の URL を削除せずに新しい URL をリクエストしているので、土地で使用できる全ての URL を使い切ります。
とにかく、以前の URL をグローバル変数に入れておき、llReleaseURL で解放するようにしてください。関連項目
関数
• | llRequestSecureURL | |||
• | llGetFreeURLs | |||
• | llReleaseURL | |||
• | llHTTPResponse | |||
• | llGetHTTPHeader |
記事
• | LSL http server |
特記事項
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。