“LlSetContentType”的版本间的差异
|  (创建页面,内容为“{{LSL Header|ml=*}}{{LSLC|Keywords}}{{LSLC|Flow Control}}{{LSLC|}}   {{函数详情 |函数名 = Function: llSetContentType( key request_id, integer content_type );…”) | |||
| 第94行: | 第94行: | ||
| {| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
| |- | |- | ||
| − | !   | + | ! 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  | ||
| |} | |} | ||
2020年8月22日 (六) 07:06的最新版本
| 首页 | 函数 | 事件 | 类型 | 操作符 | 常数 | Flow Control | Script Library | Categorized Library | Tutorials | 
| 函数名 | 
|---|
| 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 | 
附录:(表格)
| 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 | 
