LlSetContentType

来自人工智能助力教育知识百科
Mkx讨论 | 贡献2020年8月22日 (六) 07:06的版本
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航搜索

Template:Needs Translation/


函数名
Function: llSetContentType( key request_id, integer content_type );
参数:

• key request_id – 有效的http_request()密钥

• integer content_type – 媒体类型使用以下llHTTPResponse(request_id,…)

返回值:通过llHTTPResponse设置任何后续LSL HTTP服务器响应的Internet媒体类型“Content-Type”头。
注意事项
当使用CONTENT_TYPE_HTML时,这个设置将被忽略,除非所有这些条件都满足:
 web浏览器就是Second Life客户机
 用户(登录到查看页面的SL客户端)是对象的所有者。
 用户(登录到查看页面的SL客户端)连接到对象所在的区域
 显然,这与组拥有的对象不兼容。绕过这个限制的一种方法是临时安装一个中继器。
示例
key url_request;
 
string HTML_BODY =
"<!DOCTYPE html>
<html>
<body>
 
<h1>My First Heading</h1>
 
<p>My first paragraph.</p>
 
</body>
</html>";
 
default
{
    state_entry()
    {
        url_request = llRequestURL();
    }
 
    http_request(key id, string method, string body)
    {
        key owner = llGetOwner();
        vector ownerSize = llGetAgentSize(owner);
 
        if (url_request == id)
        {
         //如果你通常不重置查询ID
         //现在是开始的好时机!
            url_request = "";
 
            if (method == URL_REQUEST_GRANTED)
            {
                llOwnerSay("URL: " + body);
 
            //  if owner in sim
                if (ownerSize)//  != ZERO_VECTOR
                    llLoadURL(owner, "I got a new URL!", body);
            }
 
            else if (method == URL_REQUEST_DENIED)
                llOwnerSay("Something went wrong, no url:\n" + body);
        }
 
        else
        {
            llOwnerSay("request body:\n" + body);
 
        //  if owner in sim
            if (ownerSize)//  != ZERO_VECTOR
            {
                llSetContentType(id, CONTENT_TYPE_HTML);
                llHTTPResponse(id, 200, HTML_BODY);
            }
            else
            {
                llSetContentType(id, CONTENT_TYPE_TEXT);
                llHTTPResponse(id, 200, "OK");
            }
        }
    }
}
相关函数
llHTTPResponse
相关事件
http_request

http_response

附录:(表格)

content_type Content-Type
CONTENT_TYPE_ATOM 4 application/atom+xml
CONTENT_TYPE_FORM 7 application/x-www-form-urlencoded
CONTENT_TYPE_HTML 1 text/html
CONTENT_TYPE_JSON 5 application/json
CONTENT_TYPE_LLSD 6 application/llsd+xml
CONTENT_TYPE_RSS 8 application/rss+xml
CONTENT_TYPE_TEXT 0 text/plain
CONTENT_TYPE_XHTML 3 application/xhtml+xml
CONTENT_TYPE_XML 2 application/xml