LlHTTPRequest
Da Second Life Italia Wiki.
[modifica] Descrizione
Invia una richiesta HTTP all'indirizzo url con i specificati body e parametri.
[modifica] Sintassi
key llHTTPRequest(string url, list parametri, string body)
[modifica] Parametri
- url
- deve sempre essere un indirizzo HTTP o HTTPS valido, che punti ad una server esterno a quelli della Linden Lab o di Second Life.
| Parametri | Valore | Tipo | Default | Descrizione |
|---|---|---|---|---|
| HTTP_METHOD | 0 | string | "GET" | "GET", "POST", "PUT" e "DELETE" |
| HTTP_MIMETYPE | 1 | string | "text/plain;charset=utf-8" | text/* MIME types deve specificare un charset. Per emulare un form HTML usare 'application/x-www-form-urlencoded'. Ciò permette di settare il body come una sequenza di coppie <nome,valore> propriamente escaped (llEscapeURL) nel form come var=value&var2=value2 e avere il parsing automatico nel framework web (ad es. PHP ti permetterà di ricavarle tramite $_POST) Supportato dalla versione SL 1.10.4 |
| HTTP_BODY_MAXLENGTH | 2 | integer | 2048 | HTTP_BODY_MAXLENGTH non è ancora supportato |
| HTTP_VERIFY_CERT | 3 | integer | TRUE | Se TRUE, il certificato server SSL deve essere verificabile usando una delle autorità standard dei certificati quando si fanno le richieste HTTPS. Se FALSE, qualsiasi certificato server SSL verrà accettato. Supportato nella versione SL 1.10.4 |
Anche se fra i possibili parametri non è disponibile HTTP_AUTHORIZATION, puoi effettuare il login ad un sito web che richiede l'autenticazione basic formattando opportunamente l'url:
string username = "Your Name"; string password = "Your Password"; string url = "http://" + llEscapeURL(username) + ":" + llEscapeURL(password) + "@domain.com/page.php";
body specifica il corpo della richiesta HTTP ed è usato solo quando il HTTP_METHOD è POST o PUT. Il body è limitato solo dalla memoria libera nello script (se non si è già verificato una collisione stack/heap.)
La key ritornata da llHTTPRequest identifica univocamente la richiesta ed è passata all'handler dell'evento http_response() assieme ai risultati della richiesta quando si viene data risposta alla richiesta.
Le richieste HTTP invocate usando llHTTPRequest vengono eseguite basandosi sull'owner e sulla regione dello script. Le richieste vengono eseguite ad un massimo di 100 richieste in 100 secondi. Vedere thread (o l'esempio llHTTPRequestThrottle1) e thread (o l'esempio llHTTPRequestThrottle2) per maggiori dettagli.
Se vi è un qualsiasi errore nei parametri passati alla llHTTPRequest, o se l'owner della richiesta HTTP ha superato il rate massimo di richieste, allora la richiesta retornerà una key settata a NULL_KEY e messaggi d'errore verranno mandati al debug channel.
I seguenti header vengono aggiunti alla richiesta HTTP fatta da llHTTPRequest
| Header | Valore | Descrizione |
|---|---|---|
| Accept | text/* | |
| Accept-Charset | utf-8;q=1.0, *;q=0.5 | |
| User-Agent | Second Life LSL/VERSION(http://secondlife.com/) | versione del simulatore che effettua la richiesta |
| X-SecondLife-Shard | SHARD | "Production" se la HTTP request ha origine in SL; altrimenti, "Testing" |
| X-SecondLife-Object-Name | NAME | oggetto name che effettua la HTTP request |
| X-SecondLife-Object-Key | KEY | la chiave UUID dell'oggetto che effettua la HTTP request |
| X-SecondLife-Region | NAME('X','Y') | regione che contiene l'oggetto che effettua la richiesta; 'X','Y' è locazione nella grid |
| X-SecondLife-Local-Position | (X,Y,Z) | le coordinate nella regione dell'oggetto che effettua la richiesta |
| X-SecondLife-Local-Rotation | (X,Y,Z, W) | il quaternione che definisce la rotazione dell'oggetto che effettua la richiesta |
| X-SecondLife-Local-Velocity | (X,Y,Z) | la velocità dell'oggetto che effettua la richiesta |
| X-SecondLife-Owner-Name | NAME | il nome dell'owner dell'oggetto dell'oggetto che effettua la richiesta HTTP. Sarà il nome del gruppo se l'oggetto è deed ad un gruppo |
| X-SecondLife-Owner-Key | KEY | la key dell'owner dell'oggetto che effettua la richiesta. Sarà la key del gruppo se l'oggetto è deed ad un gruppo |
