HTTPRequest
llHTTPRequest
Description
Fonction: key llHTTPRequest( string url, list <span title="paramètres HTTP au format :
[ param1, valeur1, param2, valeur2, . . . paramN, valeurN]" style="border-bottom:1px dotted">paramètres,
string corps );
Envoie une requête HHTP à une URL spécifique avec le corps et les paramètres de la requête.
Renvoie un key correspondant à une référence permettant d’identifier dans l'évènement les réponses renvoyées
• string
|
url
|
–
|
une URL HTTP/HTTPS valide.
|
|
• list
|
paramètres
|
–
|
paramètres HTTP au format : [ param1, valeur1, param2, valeur2, . . . paramN, valeurN]
|
|
• string
|
corps
|
–
|
Contenu de la requête.
|
|
Codes
|
|
Type de valeur
|
Par défaut
|
Descriptions
|
HTTP_METHOD
|
0
|
string
|
"GET"
|
'GET', 'POST', 'PUT' et 'DELETE'
|
HTTP_MIMETYPE
|
1
|
string
|
"text/plain;charset=utf-8"
|
Les valeurs MIME text/* indique un jeu de caractères. Pour émuler une page HTML, utilisez application/x-www-form-urlencoded. Elle vous permet de formater le corps(body) de la page (llEscapeURL) en convetissant les couples <nom,valeur> au format var=valeur&var2=valeur2 et de s'assurer qu'ils soient correctement interprétés par le système.
|
HTTP_BODY_MAXLENGTH
|
2
|
integer
|
2048
|
Affecte la taille maximale (UTF-8 encoded) de la longueur du corps HTTP. Le maximum dépend en quoi est compilé le script :
|
HTTP_VERIFY_CERT
|
3
|
integer booléen
|
TRUE
|
Si TRUE, Le serveur certifié SSL doit être vérifiable en utilisant l'une des méthodes standard de certification lorsqu'il effectue des requêtes HTML. Si FALSE, n'importe que quel serveur certifié SSL sera accepté.
|
HTTP_VERBOSE_THROTTLE
|
4
|
integer noisy
|
TRUE
|
Si TRUE, ecrit des messages d'erreur sur le DEBUG_CHANNEL quand le taux de requetes sortantes atteint la limite imposée par le serveur. Si FALSE, ces messages d'erreurs ne sont pas affichés (llHTTPRequest retournera toujours NULL_KEY).
|
HTTP_CUSTOM_HEADER
|
5
|
string nom, string valeur
|
NA
|
Ajoute un paramèrte de l'en-tête HTTP personnalisé à la requête. La première chaîne "nom" est est le nom du paramètre à changer, par exemple, "Pragma", et la seconde chaine "valeur" , la valeur du paramètre à changer, e.g. "no-cache". Jusqu'à 8 paramètres meuvent ainsi être rajoutés à la requête. Certains noms d'en-tête HTTP sont bloqués pour des raisons de sécurité.
|
HTTP_PRAGMA_NO_CACHE
|
6
|
integer send_header
|
TRUE
|
Envoie l'en tête HTTP "Pragma: no-cache" (TRUE), ou ne l'envoie pas (FALSE).
|
En-tête envoyé par le simulateur.
En-têtes
|
Descriptions
|
Exemples
|
X-SecondLife-Shard
|
Environnement contenant l’objet. "Production" pour la grille principale "Testing" pour la beta
|
Production
|
X-SecondLife-Object-Name
|
Nom de l’objet contenant le script.
|
Object
|
X-SecondLife-Object-Key
|
Key de l’objet contenant le script.
|
01234567-89ab-cdef-0123-456789abcdef
|
X-SecondLife-Region
|
Nom de la région contenant l’objet + coordonnées globales du coin sud-ouest de la région
|
Jin Ho (264448, 233984)
|
X-SecondLife-Local-Position
|
Position de l’objet dans la région
|
(173.009827, 75.551231, 60.950001)
|
X-SecondLife-Local-Rotation
|
Rotation de l’objet contenant le script.
|
0.000000, 0.000000, 0.000000, 1.000000
|
X-SecondLife-Local-Velocity
|
Vitesse de l’objet
|
0.000000, 0.000000, 0.000000
|
X-SecondLife-Owner-Name
|
Nom du propriétaire de l’objet
|
Zeb Wyler
|
X-SecondLife-Owner-Key
|
UUID du propriétaire de l’objet
|
01234567-89ab-cdef-0123-456789abcdef
|
Avertissements
- Les requêtes sont gérés par objet.
- 25 requêtes max/20 secondes : cela garantit un taux de 1 requête/seconde ou de 25 requêtes d’un coup...
- Ne peut pas être utilisé pour charger des textures ou des images depuis internet, pour plus d’info, consultez Web Textures.
- Si le script doit renvoyer des rapports de transactions en $L, alors le serveur hhtp DOIT contrôler le paramètre X-SecondLife-Shard pour voir si le script est en beta.
- Le corps de la réponse est limitée à 2048 bytes, s’il est plus long, il sera tronqué.
Exemples
key http_request_id;
default
{
state_entry()
{
http_request_id = llHTTPRequest("url", [], "");
}
http_response(key request_id, integer status, list metadata, string body)
{
if (request_id == http_request_id)
{
llSetText(body, <0,0,1>, 1);
}
}
}
Notes
Si lorsque vous utilisez llHTTPRequest/http_response vous êtes incapable de lire un flux RSS connu ou une autre forme de contenu internet, vous devrez le faire en dehors de l’utilisation de second life. Ce problème a peu de chance d'évoluer dans un futur proche car le contrôle nécessaire des en-têtes nécessiterai plus de travail de la part des simulateurs.
Les environnements CGI peuvent changer les en-têtes en variable en mettant les noms en majuscule, en remplaçant les – par des _ et en préfixant les noms avec "HTTP_", ex : "HTTP_X_SECONDLIFE_OBJECT_NAME".
Apache peut inclure les en-têtes dans ses logs, en utilisant les instructions CustomLog & LogFormat. Consultez ces docs pour plus d’informations sur la syntaxe.
Voir également
Évènement
•
|
http_response
|
–
|
Evènement déclenché par un retour d’infos d’un serveur HHTP
|
|
Fonctions
Articles
Vous cherchez encore des informations ? Peut-être
cette page du LSLwiki pourra vous renseigner.