4D v14.3HTTP Request |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v14.3
HTTP Request
|
HTTP Request ( méthodeHTTP ; url ; contenu ; réponse {; nomsEnTêtes ; valeursEnTêtes}{; *} ) -> Résultat | ||||||||
Paramètre | Type | Description | ||||||
méthodeHTTP | Texte |
![]() |
Méthode HTTP pour la requête | |||||
url | Texte |
![]() |
URL auquel envoyer la requête | |||||
contenu | Texte, BLOB, Image, Objet |
![]() |
Contenu du corps (body) de la requête | |||||
réponse | Texte, BLOB, Image, Objet |
![]() |
Résultat de la requête | |||||
nomsEnTêtes | Tableau texte |
![]() |
Noms des en-têtes de la requête | |||||
![]() |
Noms d’en-têtes retournés | |||||||
valeursEnTêtes | Tableau texte |
![]() |
Valeurs d’en-têtes de la requête | |||||
![]() |
Valeurs d’en-têtes retournées | |||||||
* | Opérateur |
![]() |
Si passé, la connexion est maintenue (keep-alive) Si omis, la connexion est automatiquement refermée |
|||||
Résultat | Entier long |
![]() |
Code de statut HTTP | |||||
La commande HTTP Request permet d’envoyer tout type de requête HTTP vers un URL spécifique et de traiter la réponse du serveur HTTP.
Passez dans le paramètre méthodeHTTP la méthode HTTP de la requête. Vous pouvez utiliser une des constantes suivantes, placées dans le thème Client HTTP :
Constante | Type | Valeur | Commentaire |
HTTP méthode DELETE | Chaîne | DELETE | Voir la RFC 2616 |
HTTP méthode GET | Chaîne | GET | Voir la RFC 2616. Equivaut à utiliser la commande HTTP Get |
HTTP méthode HEAD | Chaîne | HEAD | Voir la RFC 2616 |
HTTP méthode OPTIONS | Chaîne | OPTIONS | Voir la RFC 2616 |
HTTP méthode POST | Chaîne | POST | Voir la RFC 2616 |
HTTP méthode PUT | Chaîne | PUT | Voir la RFC 2616 |
HTTP méthode TRACE | Chaîne | TRACE | Voir la RFC 2616 |
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.
Passez dans le paramètre contenu le corps (body) de la requête. Les données à passer dans ce paramètre dépendent de la méthode HTTP de la requête.
Vous pouvez envoyer des données de type texte, BLOB, image ou objet. Lorsque le content-type n’est pas spécifié, les types suivants sont utilisés :
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 :
Si vous passez une variable de type C_OBJET dans le paramètre réponse 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.
Si le résultat retourné par le serveur ne correspond pas au type de la variable réponse, elle est laissée vide et la variable système OK prend la valeur 0.
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 des 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 installée par la commande APPELER SUR ERREUR.
Demande de suppression d’un enregistrement dans une base distante :
C_TEXTE($response)
$body_t:="{record_id:25}"
$httpStatus_l:=HTTP Request(HTTP méthode DELETE;"database.example.com";$body_t;$response)
Note : Il vous appartient de traiter la demande de manière appropriée au niveau du serveur distant, la commande HTTP Request gère uniquement la requête et le résultat retourné.
Demande d'ajout d’un enregistrement dans une base distante :
C_TEXTE($response)
$body_t:="{fName:'john',fName:'Doe'}"
$httpStatus_l:=HTTP Request(HTTP méthode PUT;"database.example.com";$body_t;$response)
Note : Il vous appartient de traiter la demande de manière appropriée au niveau du serveur distant, la commande HTTP Request gère uniquement la requête et le résultat retourné.
Demande d’ajout d’enregistrement en JSON dans une base distante :
C_OBJET($content)
OB FIXER($content;"nom";"Doe";"prénom";"John")
$result:=HTTP Request(HTTP méthode PUT;"database.example.com";$content;$response)
Produit : 4D
Thème : Client HTTP
Numéro :
1158
Nom intl. : HTTP Request
Créé : 4D v13
Modifié : 4D v14
4D - Langage ( 4D v14 R2)
4D - Langage ( 4D v14 R3)
4D - Langage ( 4D v14.3)
4D - Langage ( 4D v14 R4)
Hérité de : HTTP Request ( 4D v13.5)