LlHTTPRequest/fr

From Second Life Wiki
< LlHTTPRequest
Revision as of 19:13, 4 August 2009 by Wiki Scribe (talk | contribs) (Robot: <pre> -> <lsl>)
Jump to navigation Jump to search

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

<lsl> 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);
       }
   }

} </lsl>

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

•  llEscapeURL Encode une URL
•  llUnescapeURL Décode une URL

Articles

•  Simulator IP Addresses
Vous cherchez encore des informations ? Peut-être cette page du LSLwiki pourra vous renseigner.