llHTTPResponse
Jump to navigation
Jump to search
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
Summary
Function: llHTTPResponse( key request_id, integer status, string body );0.0 | Forced Delay |
10.0 | Energy |
Responds to request_id with status and body.
• key | request_id | – | A valid HTTP request key. | |
• integer | status | – | ![]() |
|
• string | body | – | Contents of the response. |
The response need not be made inside the http_request event but if it does not happen in a timely fashion the request will time out (within 25 seconds).
Caveats
- This call must be made by the script containing the http_request event where the request_id was received.
- There is no limit, other than script size, to the amount of data that can be sent by this function.
- llHTTPRequest can truncate the response length in receiving scripts. Be aware when using them together for prim-to-prim communications.
- The response by default has
"content-type: text/plain"
. Use llSetContentType to optionally return a different type, like"text/html"
.
Examples
string url;
default
{
changed(integer change)
{
if (change & (CHANGED_REGION_START | CHANGED_REGION | CHANGED_TELEPORT))
llResetScript();
}
state_entry()
{
llRequestURL();
}
touch_start(integer num_detected)
{
// PUBLIC_CHANNEL has the integer value 0
if (url != "")
llSay(PUBLIC_CHANNEL, "URL: " + url);
}
http_request(key id, string method, string body)
{
// http://en.wikipedia.org/wiki/Create,_read,_update_and_delete
list CRUDmethods = ["GET", "POST", "PUT", "DELETE"];
// it's bit-wise NOT ( ~ ) !!!
integer isAllowedMethod = ~llListFindList(CRUDmethods, [method]);
if (isAllowedMethod)
{
llHTTPResponse(id, 200, "Body of request below:\n" + body);
}
else if (method == URL_REQUEST_GRANTED)
{
// don't forget the trailing slash
url = body + "/";
llOwnerSay("URL: " + url);
}
else if (method == URL_REQUEST_DENIED)
{
llOwnerSay("Something went wrong, no URL.\n" + body);
}
else
{
llOwnerSay("Ummm... I have no idea what SL just did. Method=\""+method+"\"\n" + body);
}
}
}
See Also
Constants
• | CONTENT_TYPE_TEXT | |||
• | CONTENT_TYPE_HTML | |||
• | CONTENT_TYPE_XML | |||
• | CONTENT_TYPE_XHTML | |||
• | CONTENT_TYPE_ATOM | |||
• | CONTENT_TYPE_JSON | |||
• | CONTENT_TYPE_LLSD | |||
• | CONTENT_TYPE_FORM | |||
• | CONTENT_TYPE_RSS |
Events
• | http_request | |||
• | http_response |
Functions
• | llGetFreeURLs | |||
• | llRequestURL | |||
• | llRequestSecureURL | |||
• | llReleaseURL | |||
• | llGetHTTPHeader | |||
• | llSetContentType |
Articles
• | LSL http server |