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");
}
}
}
}
|
附录:(表格)