Difference between revisions of "LlHTTPResponse"

From Second Life Wiki
Jump to: navigation, search
m
m (added a comment)
Line 16: Line 16:
 
|constants
 
|constants
 
|examples=
 
|examples=
<lsl>key url_request;
+
<lsl>
 +
key url_request;
  
 
default
 
default
Line 24: Line 25:
 
         url_request = llRequestURL();
 
         url_request = llRequestURL();
 
     }
 
     }
 +
 
     http_request(key id, string method, string body)
 
     http_request(key id, string method, string body)
 
     {
 
     {
 
         if (url_request == id)
 
         if (url_request == id)
 
         {
 
         {
 +
        //  if you're usually not resetting the query ID
 +
        //  now is a good time to start!
 
             url_request = "";
 
             url_request = "";
 +
 
             if (method == URL_REQUEST_GRANTED)
 
             if (method == URL_REQUEST_GRANTED)
            {
 
 
                 llOwnerSay("URL: " + body);
 
                 llOwnerSay("URL: " + body);
            }
+
 
 
             else if (method == URL_REQUEST_DENIED)
 
             else if (method == URL_REQUEST_DENIED)
            {
+
                 llOwnerSay("Something went wrong, no URL.\n" + body);
                 llOwnerSay("Something went wrong, no url. " + body);
+
            }
+
 
         }
 
         }
 
         else
 
         else
 
         {
 
         {
             llHTTPResponse(id, 200, body);
+
             llHTTPResponse(id, 200, "Body of request below:\n" + body);
 
         }
 
         }
 
     }
 
     }
}</lsl>
+
}
 +
</lsl>
 
|helpers
 
|helpers
 
|also_functions=
 
|also_functions=

Revision as of 10:11, 8 October 2012

Summary

Function: llHTTPResponse( key request_id, integer status, string body );

Responds to request_id with status and body.

• key request_id A valid HTTP request key.
• integer status HTTP Status (200, 400, 404, etc)
• 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.
  • Returns 'content-type: text/plain' by default. Use llSetContentType to optionally return 'text/html' if being viewed by the object owner within a Second Life client.
All Issues ~ Search JIRA for related Bugs

Examples

<lsl> key url_request;

default {

   state_entry()
   {
       url_request = llRequestURL();
   }
   http_request(key id, string method, string body)
   {
       if (url_request == id)
       {
       //  if you're usually not resetting the query ID
       //  now is a good time to start!
           url_request = "";
           if (method == URL_REQUEST_GRANTED)
               llOwnerSay("URL: " + body);
           else if (method == URL_REQUEST_DENIED)
               llOwnerSay("Something went wrong, no URL.\n" + body);
       }
       else
       {
           llHTTPResponse(id, 200, "Body of request below:\n" + body);
       }
   }

}

</lsl>

See Also

Events

•  http_request

Functions

•  llGetFreeURLs
•  llRequestURL
•  llRequestSecureURL
•  llReleaseURL
•  llGetHTTPHeader
•  llSetContentType

Articles

•  LSL http server

Deep Notes

History

All Issues

~ Search JIRA for related Issues
   llHTTPImageResponse() - function for sending image data as a response to an HTTP request

Signature

function void llHTTPResponse( key request_id, integer status, string body );