LlGetHTTPHeader/ja

From Second Life Wiki
< LlGetHTTPHeader
Revision as of 15:36, 25 February 2016 by SakuraNoel Fayray (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

要約

関数: string llGetHTTPHeader( key request_id, string header );

request_id に対応した header の値。を string で返します。

• key request_id 有効な HTTP リクエストのキー。
• 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 のヘッダ

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" となります。

警告

サンプル

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
•  "Wikipedia logo"Wikipedia:List of HTTP headers

特記事項

経緯

Search JIRA for related Issues

Signature

function string llGetHTTPHeader( key request_id, string header );
この翻訳は 原文 と比べて古いですか?間違いがありますか?読みにくいですか?みんなで 修正 していきましょう! (手順はこちら)
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。