“LlSetContentType”的版本间的差异
(创建页面,内容为“{{LSL Header|ml=*}}{{LSLC|Keywords}}{{LSLC|Flow Control}}{{LSLC|}} {{函数详情 |函数名 = Function: llSetContentType( key request_id, integer content_type );…”) |
(没有差异)
|
2020年8月22日 (六) 07:01的版本
首页 | 函数 | 事件 | 类型 | 操作符 | 常数 | 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 |
附录:(表格)