function
Function syntax
llHTTPResponse(key request_id,// Unique key identifying the incoming HTTP request.integer status,// Integer HTTP status code (such as 200, 400, or 404) to respond with.string body// String contents of the response body.
);- Energy
- 10
Responds to request_id with status and body.
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).
llHTTPResponse(NULL_KEY, 0, "");Caveats
Section titled “Caveats”- This call must be made by the script containing the
http_requestevent 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.
llHTTPRequestcan 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". UsellSetContentTypeto optionally return a different type, like"text/html". - Besides
llSetContentType, there is no way to set any custom HTTP headers in the response.
Examples
Section titled “Examples”Example 1
29 collapsed lines
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)16 collapsed lines
{ // 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); } }}History
Section titled “History”- SVN:1836 r112899 Trunk
Known issues
Section titled “Known issues”From the issue templates included by the wiki article:
- SCR-396 (nf): llHTTPImageResponse() - function for sending image data as a response to an HTTP request
See also
Section titled “See also”Functions
Section titled “Functions”Events
Section titled “Events”Articles
Section titled “Articles”Original wiki source
Some wiki templates and tables need their original context. View this article on the Second Life Wiki. Technical wording and examples are retained from the source; historical guidance may differ from current behavior.