LlGetHTTPHeader/ja
Jump to navigation
Jump to search
LSL ポータル | 関数 | イベント | 型 | 演算子 | 定数 | 実行制御 | スクリプトライブラリ | カテゴリ別スクリプトライブラリ | チュートリアル |
要約
関数: string llGetHTTPHeader( key request_id, string header );仕様
生成されるヘッダ
これらのヘッダはシミュレータによって自動的に生成されるもので、リクエスト元のクライアントから実際に送られてくるわけではありません。これらのヘッダは解析しやすくなるようにリクエスト情報を提供しています。
URL の例: https://sim3015.aditi.lindenlab.com:12043/cap/a7717681-2c04-e4ac-35e3-1f01c9861322/foo/bar?arg=gra
ヘッダ | 説明 | 例 |
---|---|---|
"x-script-url" | llRequestURL/llRequestSecureURL から取得したベース URL | https://sim3015.aditi.lindenlab.com:12043/cap/a7717681-2c04-e4ac-35e3-1f01c9861322 |
"x-path-info" | リクエスト先 URL の後続パスの情報 | /foo/bar |
"x-query-string" | クエリ引数、URL の最初に現れる "?" に続くテキスト文字列 | arg=gra |
"x-remote-ip" | リクエストを生成したホストの IP アドレス |
共通ヘッダ
ヘッダ | 説明 | 例 |
---|---|---|
"user-agent" | リクエスト元から通知された user-agent |
llHTTPRequest のヘッダ
ヘッダ | 説明 | データ例 |
---|---|---|
X-SecondLife-Shard | オブジェクトの存在する環境。 "Production" はメイングリッド、 "Testing" はプレビューグリッドです。 | Production |
X-SecondLife-Object-Name | スクリプトが入っているオブジェクトの名前 | Object |
X-SecondLife-Object-Key | スクリプトが入っているオブジェクトのキー | 01234567-89ab-cdef-0123-456789abcdef |
X-SecondLife-Region | オブジェクトが存在する地域名。地域南西端のグローバル座標も表示されます。 | Jin Ho (264448, 233984) |
X-SecondLife-Local-Position | 地域内でのオブジェクトの位置 | (173.009827, 75.551231, 60.950001) |
X-SecondLife-Local-Rotation | スクリプトが入っているオブジェクトの回転 | 0.000000, 0.000000, 0.000000, 1.000000 |
X-SecondLife-Local-Velocity | オブジェクトの速度 | 0.000000, 0.000000, 0.000000 |
X-SecondLife-Owner-Name | オブジェクトのオーナーの名前 | Zeb Wyler |
X-SecondLife-Owner-Key | オブジェクトのオーナーの UUID | 01234567-89ab-cdef-0123-456789abcdef |
CGI 環境では名前全体を大文字にした変数でヘッダーを設置し、ダッシュをアンダースコアに置き換え、 "HTTP_" を名前の前につけます。例えば "X-SecondLife-Object-Name" は "HTTP_X_SECONDLIFE_OBJECT_NAME" となります。 |
警告
- LSL は CGI 環境ではありません。
- 例えば通常のヘッダ名称の名前が "Content-Type" の場合は、CGI 環境ではその名前は "HTTP_CONTENT_TYPE" となるでしょう。
- ヘッダ情報は 30 秒間か、llHTTPResponse が呼び出されるまで有効です。
- 注意:上に挙げたヘッダ名称は正しくありません - 全て小文字にしなければなりません ( 例えば、x-secondlife-shard, x-secondlife-object-name, x-secondlife-object-key, x-secondlife-region のように )
- リクエストを生成するときには、
- URL のパス部分はスラッシュで始まらなければなりません。
- クエリ文字列を使用するには、(例えそれがスラッシュ 1 個だけであっても) パスを含めなければなりません。
サンプル
key url_request;
default
{
state_entry()
{
url_request = llRequestURL();
}
http_request(key id, string method, string body)
{
if (url_request == id)
{
url_request = "";
if (method == URL_REQUEST_GRANTED)
{
llOwnerSay("URL: " + body);
if(llGetAgentSize(llGetOwner()))
llLoadURL(llGetOwner(), "", body);
}
else if (method == URL_REQUEST_DENIED)
{
llOwnerSay( "Something went wrong, no url. " + body);
}
}
else
{
list headers = [ "x-script-url", "x-path-info", "x-query-string", "x-remote-ip", "user-agent" ];
integer pos = ~llGetListLength(headers);
while( ++pos )
{
string header = llList2String(headers, pos);
llOwnerSay(header + ": " + llGetHTTPHeader(id, header));
}
llOwnerSay( "body: " + body);
llHTTPResponse(id, 200, body);
}
}
}
関連項目
イベント
• | http_request |
関数
• | llGetFreeURLs | |||
• | llRequestURL | |||
• | llRequestSecureURL | |||
• | llReleaseURL | |||
• | llHTTPResponse |
記事
• | LSL http server | |||
• | ![]() |
特記事項
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。