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
è una list formata da coppie di valori di tipo <integer costante, string valore>:
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
Strumenti personali