Difference between revisions of "LlRequestURL"
Jump to navigation
Jump to search
m |
Kireji Haiku (talk | contribs) m |
||
Line 13: | Line 13: | ||
|examples= | |examples= | ||
This script requests a new URL after region restart: | This script requests a new URL after region restart: | ||
<LSL>string url; | <LSL> | ||
key urlRequestId; | |||
string url; | |||
request_url() | |||
{ | |||
if (url != "") | |||
{ | |||
llReleaseURL(url); | |||
url = ""; | |||
} | } | ||
changed(integer | |||
urlRequestId = llRequestURL(); | |||
if ( | } | ||
default | |||
{ | |||
changed(integer change) | |||
{ | |||
if (change & (CHANGED_REGION | CHANGED_REGION_START | CHANGED_TELEPORT)) | |||
request_url(); | |||
} | |||
state_entry() | |||
{ | |||
request_url(); | |||
} | } | ||
http_request(key | |||
if ( | http_request(key id, string method, string body) | ||
{ | |||
if (id == urlRequestId) | |||
{ | |||
urlRequestId = NULL_KEY; | |||
if (method == URL_REQUEST_GRANTED) | |||
{ | |||
url = body; | |||
llOwnerSay(url); | |||
} | |||
else if (method == URL_REQUEST_DENIED) | |||
llOwnerSay("URL request has been denied! " + body); | |||
} | } | ||
else if (method == "GET") | |||
llHTTPResponse(id, 200, "Hello world!"); | |||
} | } | ||
}</LSL> | } | ||
</LSL> | |||
It's important to keep in mind that if you request another URL, that the old one will not be released, it will remain active. The following script drives home this point. | It's important to keep in mind that if you request another URL, that the old one will not be released, it will remain active. The following script drives home this point. | ||
Revision as of 02:11, 31 July 2012
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
Summary
Function: key llRequestURL( );0.0 | Forced Delay |
10.0 | Energy |
Requests one HTTP:// url for use by this script. The http_request event is triggered with the result of the request.
Returns a key that is the handle used for identifying the result in the http_request event.
Caveats
- When a region is (re)started all HTTP server URLs are automatically released and invalidated.
- Use CHANGED_REGION_START to detect this so new URL can be requested.
- The number of available URLs is a limited resource, that is to say, a script can only have so many open URLs. See LSL http_server#Resource Limitations for details.
- When abandoning a URL, always release it with llReleaseURL, otherwise it will leak.
Examples
This script requests a new URL after region restart: <LSL> key urlRequestId; string url;
request_url() {
if (url != "") { llReleaseURL(url); url = ""; }
urlRequestId = llRequestURL();
}
default {
changed(integer change) {if (change & (CHANGED_REGION
See Also
Functions
• | llRequestSecureURL | |||
• | llGetFreeURLs | |||
• | llReleaseURL | |||
• | llHTTPResponse | |||
• | llGetHTTPHeader |
Articles
• | LSL http server |