OsSetContentType
From OpenSimulator
(Difference between revisions)
												
			m (Added note stating which version of OpenSim introduced this function)  | 
			 (Add new exemple)  | 
			||
| (6 intermediate revisions by 4 users not shown) | |||
| Line 1: | Line 1: | ||
{{osslfunc  | {{osslfunc  | ||
| − | |function_syntax=  | + | |function_syntax= osSetContentType(key id, string type)  | 
| − | |threat_level=  | + | |threat_level=Severe  | 
| − | |permissions=${  | + | |permissions=${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER  | 
|delay=0  | |delay=0  | ||
|description=Sets an arbitrary content return type for an [http://wiki.secondlife.com/wiki/LlRequestURL llRequestUrl()].  | |description=Sets an arbitrary content return type for an [http://wiki.secondlife.com/wiki/LlRequestURL llRequestUrl()].  | ||
| − | |additional_info=This function was added in 0.7.5-post-fixes  | + | The threat level was upgraded to Severe as of commit #2c2b887c8a on December 11, 2018.  | 
| + | |ossl_example=<source lang="lsl">  | ||
| + | //  | ||
| + | // osSetContentType Script Exemple  | ||
| + | // Author: djphil  | ||
| + | //  | ||
| + | |||
| + | integer use_ossl = TRUE;  | ||
| + | integer use_html = TRUE;  | ||
| + | |||
| + | string html = "<!DOCTYPE html>  | ||
| + | <html>  | ||
| + | <head>  | ||
| + |     <title>osSetContentType</title>  | ||
| + | </head>  | ||
| + | <body>  | ||
| + |     <h1>My first heading</h1>  | ||
| + |     <h2>My second heading</h2>  | ||
| + |     <h3>My third heading</h3>  | ||
| + |     <h4>My fourth heading</h4>  | ||
| + |     <h5>My fifth heading</h5>  | ||
| + |     <h6>My sixth heading</h6>  | ||
| + |     <p>My first paragraph.</p>  | ||
| + |     <p>My <b>second</b> paragraph.</p>  | ||
| + |     <p>My <i>third</i> paragraph.</p>  | ||
| + | </body>  | ||
| + | </html>";  | ||
| + | |||
| + | key request;  | ||
| + | string url;  | ||
| + | |||
| + | default  | ||
| + | {  | ||
| + |     state_entry()  | ||
| + |     {  | ||
| + |         llSay(PUBLIC_CHANNEL, "Touch to see osSetContentType usage.");  | ||
| + |     }  | ||
| + | |||
| + |     touch_start(integer number)  | ||
| + |     {  | ||
| + |         llReleaseURL(url);  | ||
| + |         request = llRequestURL();  | ||
| + |     }  | ||
| + | |||
| + |     http_request(key id, string method, string body)  | ||
| + |     {  | ||
| + |         request = "";  | ||
| + |         url = "";  | ||
| + | |||
| + |         if (method == URL_REQUEST_DENIED)  | ||
| + |         {  | ||
| + |             llSay(PUBLIC_CHANNEL, "Request denied ...");  | ||
| + |         }  | ||
| + | |||
| + |         else if (method == URL_REQUEST_GRANTED)  | ||
| + |         {  | ||
| + |             url = body;  | ||
| + |             llSay(PUBLIC_CHANNEL, "Your url is:\n" + body);  | ||
| + |         }  | ||
| + | |||
| + |         else if (method == "GET")  | ||
| + |         {  | ||
| + |             if (use_html)  | ||
| + |             {  | ||
| + |                 if (use_ossl) osSetContentType(id, "text/html");  | ||
| + |                 else llSetContentType(id, CONTENT_TYPE_HTML);  | ||
| + |                 llHTTPResponse(id, 200, html);  | ||
| + |             }  | ||
| + | |||
| + |             else  | ||
| + |             {  | ||
| + |                 if (use_ossl) osSetContentType(id, "text/plain");  | ||
| + |                 else llSetContentType(id, CONTENT_TYPE_TEXT);  | ||
| + |                 llHTTPResponse(id, 200, "Hello world!");  | ||
| + |             }  | ||
| + |         }  | ||
| + |     }  | ||
| + | }  | ||
| + | </source>  | ||
| + | |additional_info=This function was added in 0.7.5-post-fixes.  | ||
}}  | }}  | ||
Latest revision as of 18:34, 3 December 2020
osSetContentType(key id, string type)
 
 | |
| Sets an arbitrary content return type for an llRequestUrl().
 The threat level was upgraded to Severe as of commit #2c2b887c8a on December 11, 2018.  | |
| Threat Level | Severe | 
| Permissions | ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER | 
| Extra Delay | 0 seconds | 
| Example(s) | |
// // osSetContentType Script Exemple // Author: djphil // integer use_ossl = TRUE; integer use_html = TRUE; string html = "<!DOCTYPE html> <html> <head> <title>osSetContentType</title> </head> <body> <h1>My first heading</h1> <h2>My second heading</h2> <h3>My third heading</h3> <h4>My fourth heading</h4> <h5>My fifth heading</h5> <h6>My sixth heading</h6> <p>My first paragraph.</p> <p>My <b>second</b> paragraph.</p> <p>My <i>third</i> paragraph.</p> </body> </html>"; key request; string url; default { state_entry() { llSay(PUBLIC_CHANNEL, "Touch to see osSetContentType usage."); } touch_start(integer number) { llReleaseURL(url); request = llRequestURL(); } http_request(key id, string method, string body) { request = ""; url = ""; if (method == URL_REQUEST_DENIED) { llSay(PUBLIC_CHANNEL, "Request denied ..."); } else if (method == URL_REQUEST_GRANTED) { url = body; llSay(PUBLIC_CHANNEL, "Your url is:\n" + body); } else if (method == "GET") { if (use_html) { if (use_ossl) osSetContentType(id, "text/html"); else llSetContentType(id, CONTENT_TYPE_HTML); llHTTPResponse(id, 200, html); } else { if (use_ossl) osSetContentType(id, "text/plain"); else llSetContentType(id, CONTENT_TYPE_TEXT); llHTTPResponse(id, 200, "Hello world!"); } } } }  | |
| Notes | |
| This function was added in 0.7.5-post-fixes. | |