4D v14.3

HTTP Get

Accueil

 
4D v14.3
HTTP Get

HTTP Get 


 

HTTP Get ( url ; réponse {; nomsEnTêtes ; valeursEnTêtes}{; *} ) -> Résultat 
Paramètre Type   Description
url  Texte in URL auquel envoyer la requête
réponse  Texte, BLOB, Image, Objet in Résultat de la requête
nomsEnTêtes  Tableau texte in Noms des en-têtes de la requête
in Noms d’en-têtes retournés
valeursEnTêtes  Tableau texte in Valeurs d’en-têtes de la requête
in Valeurs d’en-têtes retournées
Opérateur in Si passé, la connexion est maintenue (keep-alive)
Si omis, la connexion est automatiquement refermée
Résultat  Entier long in Code de statut HTTP

La commande HTTP Get permet d’envoyer directement une requête HTTP GET vers un URL spécifique et de traiter la réponse du serveur HTTP.

Passez dans le paramètre url l’URL auquel adresser la requête. La syntaxe à utiliser est :

http://[{user}:[{password}]@]host[:{port}][/{path}][?{queryString}]

Par exemple, les chaînes suivantes peuvent être passées :

    http://www.myserver.com
    http://www.myserver.com/path
    http://www.myserver.com/path?name="jones"
    https://www.myserver.com/login (*)
    http://123.45.67.89:8083
    http://john:smith@123.45.67.89:8083

(*) Lors des requêtes https, l’autorité du certificat n’est pas vérifiée.

Après exécution de la commande, le paramètre réponse récupère le résultat de la requête retourné par le serveur. Ce résultat correspond à la partie corps (body) de la réponse, sans les en-têtes (headers). Vous pouvez passer des variables de différents types dans réponse :

  • Texte : lorsque le résultat est attendu sous forme de texte encodé en UTF16
  • BLOB : lorsque le résultat est attendu sous forme binaire
  • Image : lorsque le résultat est attendu sous forme d’image
  • Objet : lorsque le résultat est attendu sous forme d'objet C_OBJET

Si vous passez un BLOB, il contiendra le texte, l’image ou tout type de contenu (.wav, .zip...) retourné par le serveur. Vous devrez alors gérer la récupération de ce contenu (les en-têtes ne sont pas inclus dans le BLOB). Si le type de données renvoyé par le serveur ne correspond pas au type de la variable, elle est retournée vide.
Si vous passez un objet de type C_OBJET et si la requête retourne un résultat ayant le content-type "application/json" (ou "quelquechose/json"), 4D tentera d’analyser le contenu JSON afin de générer l’objet.

Vous pouvez passer dans les paramètres nomsEnTêtes et valeursEnTêtes des tableaux contenant respectivement les noms et les valeurs des en-têtes de la requête.
A l’issue de l’exécution de la méthode, ces tableaux contiendront les noms et valeurs d’en-têtes retournés par le serveur HTTP. Ce principe permet notamment de gérer des cookies. 

Le paramètre * permet d’activer le mécanisme de keep-alive pour la connexion au serveur. Par défaut, si ce paramètre est omis, le keep-alive n’est pas activé. 

La commande retourne le code de statut HTTP standard (200=OK...) tel que renvoyé par le serveur. La liste des codes de statut HTTP est fournie dans la RFC 2616. Si la connexion au serveur est impossible pour une raison liée au réseau (DNS Failed, Server not reachable...) la commande retourne 0 et une erreur est générée. Si la commande utilise un certificat serveur et que le certificat n’est pas valide (expiré ou révoqué), la commande retourne 0 et l’erreur 901 "Certificat serveur invalide" est retournée. Vous pouvez intercepter ces erreurs à l’aide d’une méthode d’appel sur erreur installée par la commande APPELER SUR ERREUR.

Récupération du logo 4D sur le site Web de 4D :

 C_TEXTE(URLPic_t)
 URLPic_t:="http://www.4d.com/sites/all/themes/dimention/images/home/logo4D.jpg"
 TABLEAU TEXTE(HeaderNames_at;0)
 TABLEAU TEXTE(HeaderValues_at;0)
 C_IMAGE(Pic_i)
 $httpResponse:=HTTP Get(URLPic_t;Pic_i;HeaderNames_at;HeaderValues_at)

Récupération d’une RFC :

 C_TEXTE(URLText_t)
 C_TEXTE(Text_t)
 URLText_t:="http://tools.ietf.org/rfc/rfc1.txt"
 TABLEAU TEXTE(HeaderNames_at;0)
 TABLEAU TEXTE(HeaderValues_at;0)
 $httpResponse:=HTTP Get(URLText_t;Text_t;HeaderNames_at;HeaderValues_at)

Récupération d’une vidéo :

 C_BLOB(vBlob)
 $httpResponse:=HTTP Get("http://www.example.com/video.flv";vBlob)
 BLOB VERS DOCUMENT("video.flv";vBlob)

 
PROPRIÉTÉS 

Produit : 4D
Thème : Client HTTP
Numéro : 1157
Nom intl. : HTTP Get

Cette commande modifie la variable système Error

 
HISTORIQUE 

New
Créé : 4D v13
Modifié : 4D v14

 
VOIR AUSSI  

HTTP Request

 
UTILISATION DE L'ARTICLE

4D - Langage ( 4D v14 R2)
4D - Langage ( 4D v14 R3)
4D - Langage ( 4D v14.3)
4D - Langage ( 4D v14 R4)

Hérité de : HTTP Get ( 4D v13.5)