Téléchargement des produits


Version anglaise


 

 

ADELIA

VADELIA

SADELIA

WADELIA

 

(I/B)

(I/B) (C/S)

(B) (S)

(I/B) (C/S)

 
 

 

Paragraphe d'utilisation

Tous

 

Syntaxe

EXECUTER_HTTP *URL(Url) *OPTIONS(Options) *DONNEES(données) *HEADER(Header) Réponse *COOKIES(Cookies) *CODE_HTTP(codeHttp)

 

Url

Þ

<variable alpha> | <constante alpha>
     

Options

Þ

<variable alpha> | <constante alpha>
     

Données

Þ

Type, Valeur
     

Type

Þ

<variable alpha> | <constante alpha>
     

Valeur

Þ

<variable alpha> | <constante alpha> | <variable image> | <liste>
     

Liste

Þ

<liste Adélia : alpha, alpha, alpha, image, alpha>
     

Header

Þ

<liste Adélia : alpha, alpha>
     

Réponse

Þ

*REPONSE(réponse) | *FICHIER(NomFichier)
     

Réponse

Þ

<variable alphanumérique | <variable image>
     

NomFichier

Þ

<variable alphanumérique> | <constante alphanumérique>
     

Cookies

Þ

<liste Adélia : alpha, alpha, alpha, alpha, alpha, bool, bool>
     

CodeHttp

Þ

<variable numérique>
 

Description

Permet de créer une connexion HTTP avec le serveur Web et de transférer des données avec l'URL indiquée.

 

Les méthodes HTTP GET, POST, PUT, HEAD, OPTIONS, DELETE, TRACE et PATCH sont permises.

Il est notamment possible :

- d'établir des connexions sécurisées via SSL avec l'utilisation de certificats, 

- de définir un mode d'authentification BASIC ou DIGEST,

- de déléguer la requête à un Proxy,

- d'utiliser des Cookies.

 

Cliquez ci-dessous pour un accès rapide à la description des différents paramètres :

 

- Paramètre *URL

- Paramètre *OPTIONS

- Paramètre *DONNEES

- Paramètre *HEADER

- Paramètre Réponse

- Paramètre *COOKIES

- Paramètre *CODE_HTTP

 

*URL

 

Le paramètre *URL est une variable ou une constante alphanumérique qui définit, en entrée, l'adresse URL (Uniform Resource Locator) de la ressource.

Si le numéro de port n'est pas précisé dans l'URL, Adélia utilise le port 80.

L'URL désigne soit une ressource accessible via le protocole HTTP ou HTTPS, soit une ressource locale accessible via FILE://.

Paramètre obligatoire.

 

Exemple :

EXECUTER_HTTP *URL('http://localhost:8080/awstest/ws/personnes/1') *REPONSE(VAR_REP)

Retour à la liste des paramètres

 

 

*OPTIONS

 

Le paramètre *OPTIONS permet de définir, en entrée, les options de la requête HTTP à exécuter. Celle-ci contient les noms des options suivies de leur valeur.

Le nom de l'option et sa valeur sont séparés par un espace.
Les noms des options commencent toujours par 2 tirets (--).
Les couples option/valeur sont également séparés par un espace.

Paramètre facultatif.

 

Exemple :

--request GET  --header Accept: application/json

 

Remarque : si le paramètre *OPTIONS n'est pas défini ou si l'option --request n'est pas précisée, Adélia considère que la méthode HTTP à exécuter est GET.

Exemple :

L'instruction EXECUTER_HTTP *url('http://localhost:8080/awstest/ws/personnes/') *REPONSE(VAR_REP)  récupère la liste des personnes retournée par le service Web.

 

Les options disponibles sont les suivantes :

    • Options relatives à l'authentification du serveur lors d'une connexion via SSL (https) :

Option

Valeur

Description

--cacert

<Nom fichier Certificat>

Définit le nom du fichier qui contient les certificats.

Rappel : les certificats servent à distribuer la clé publique et à vérifier l'identité du serveur sur lequel on souhaite envoyer des informations privées.

Les certificats doivent être au format PEM.

Si l'option est définie plusieurs fois, c'est uniquement la dernière qui est prise en compte.

 

    • Options relatives à l'authentification du client lors d'une connexion via SSL (https) :

Option

Valeur

Description

--cert

<Nom fichier Certificat>

Définit le fichier contenant le certificat du client à utiliser.

Le fichier peut contenir la clé privée concaténée avec le certificat client (certificate chain file).

Il peut ne contenir que le certificat. Dans ce cas, il faut utiliser l'option --key pour définir la clé privée.

Rappel : le certificat client permet au serveur de s'assurer que le client est bien celui qu'il prétend être.

Si l'option est définie plusieurs fois, c'est uniquement la dernière qui est prise en compte.

--cert-type

PEM | DER

Type du certificat fourni.

Si aucun format n'est spécifié, le format PEM est utilisé.

Si l'option est définie plusieurs fois, c'est uniquement la dernière qui est prise en compte.

--key

<nom fichier clé privée>

Nom du fichier contenant la clé privée.

--key-type

PEM | DER

Format de la clé privée.

Si aucun format n'est spécifié, le format PEM est utilisé.

--pass

<passphrase>

Phrase secrète pour protéger la clé privée.

Rappel : le passphrase est l'équivalent d'un mot de passe très sécurisé pour chiffrer la clé privée.

Nécessaire pour charger la clé privée lorsque celle-ci est chiffrée.

Si l'option est définie plusieurs fois, c'est uniquement la dernière qui est prise en compte.

 

    • Options relatives à une connexion via SSL (https) :

Option

Valeur

Description

--insecure

Aucune valeur à indiquer

Le certificat et l'identité du serveur ne sont pas vérifiés.

Cependant, les données transférées sont toujours chiffrées.

--TLSv1

Aucune valeur à indiquer

Utilise la version TLSv1 de SSL.

--TLSv1.0

Aucune valeur à indiquer

Utilise la version TLSv1.0 de SSL.

--TLSv1.1

Aucune valeur à indiquer

Utilise la version TLSv1.1 de SSL.

--TLSv1.2

Aucune valeur à indiquer

Utilise la version TLSv1.2 de SSL.

--SSLv2

Aucune valeur à indiquer

Utilise la version SSLV2 de SSL.

--SSLv3

Aucune valeur à indiquer

Utilise la version SSLV3 de SSL.

 

    • Options relatives à l'utilisation d'un Proxy :

Option

Paramètres

Description

--proxy

<http://[utilisateur:mot de passe@] NomHoteProxy [:NumeroPort]>

Définit l'adresse du Proxy à utiliser. Celle-ci peut être :

  • précédée d'un nom d'utilisateur et de son mot de passe,
  • suivie d'un numéro de port.

Si le numéro de port n'est pas spécifié, Adélia utilise le numéro de port 1080.

Il est possible de définir le nom de l'utilisateur et son mot de passe via l'option --proxy-user.

Remarque : le Proxy doit obligatoirement être un Proxy HTTP.

Si l'option est définie plusieurs fois, c'est uniquement la dernière qui est prise en compte.

--proxy-digest

Aucune valeur à indiquer

Utilise le mode d'authentification DIGEST pour la connexion au serveur Proxy.

--proxy-basic

Aucune valeur à indiquer

Utilise le mode d'authentification BASIC pour la connexion au serveur Proxy.

--proxy-user

<utilisateur:mot de passe>

Nom de l'utilisateur et mot de passe pour l'authentification au serveur Proxy.

Si l'option est définie plusieurs fois, c'est uniquement la dernière qui est prise en compte.

--proxy-header

<nomProxyHeader: valeur>

En-têtes à inclure à la requête HTTP à destination du serveur Proxy.

L'option doit être répétée autant de fois qu'il y a d'en-têtes à inclure.

 

Exemple :

EXECUTER_HTTP *URL('http://exemple.fr/aws_ressource') *OPTIONS('--proxy-header Cache-Control: proxy-revalidate --proxy-header Transfer-Encoding: chunked') *REPONSE(VAR_REP)

 

    • Option relative aux Cookies :

Option

Paramètres

Description

--cookie

<nom1=valeur1 ; nom2=valeur2>

Liste des Cookies à envoyer au serveur, lesquels doivent avoir été envoyés précédemment par le serveur.

Si l'option est définie plusieurs fois, c'est uniquement la dernière qui est prise en compte.

 

    • Options relatives à l'authentification :

Option

Paramètres

Description

--user

<utilisateur : mot de passe>

Nom de l'utilisateur et son mot de passe  pour l'authentification au serveur Web.

Si l'option est définie plusieurs fois, c'est uniquement la dernière qui est prise en compte.

--digest

Aucune valeur à indiquer

Utilise le mode d'authentification DIGEST pour la connexion au serveur.

--basic

Aucune valeur à indiquer

Utilise le mode d'authentification BASIC pour la connexion au serveur.

--anyauth

Aucune valeur à indiquer

Utilise le mode d'authentification le plus sécurisé parmi les méthodes que réclame le site distant.

 

    • Option relative aux Header de la requête :

Option

Paramètres

Description

--header

<nomHeader: valeur>

En-têtes à inclure à la requête HTTP à destination du serveur.

L'option doit être répétée autant de fois qu'il y a d'en-têtes à inclure.

 

Exemple :

EXECUTER_HTTP URL('http://exemple.fr/aws_ressource') *OPTIONS('--header Content-Type: application/json --header Transfer-Encoding: chunked') *REPONSE(VAR_REP)

 

Remarque : cette option n'inclut pas les Header de la réponse. Ces derniers sont écrits dans le paramètre *HEADER.

 

    • Options particulières pour la gestion des conversions en génération AS/400 ou Unicode :

Par défaut sur l'AS/400, toutes les valeurs d'entrée "alpha" doivent être converties depuis la page de code EBCDIC ou Unicode courante vers la page de code ISO 819.

Il est nécessaire de définir le mode de conversion pour chaque option sur laquelle on ne souhaite pas gérer la conversion par défaut.

 

Option

Paramètres

Description

--conv-utf8

<nom option>

Convertit la valeur associée de l'option depuis la page de codes EBCDIC courante en UTF8.

--no-conv

<nom option>

Aucune conversion n'est effectuée entre les pages de code EBCDIC ou Unicode et ISO 819.

 

 

En Java et en Windows, il est possible de modifier le mode de conversion pour les données à envoyer et les données reçues.

 

Par défaut, in Java, les données à envoyer sont converties de l'UTF16 vers la page de code courante (ANSI/ASCII), et les données reçues sont converties de la page de code courante (ANSI/ASCII) vers l'UTF16.

 

Option

Paramètres

Description

--conv-utf8

*DONNEES

Convertit la donnée à envoyer de l'UTF16 en UTF8.

--conv-utf8

*REPONSE

Convertit la donnée reçue de l'UTF8 en UTF16.

--no-conv

*DONNEES

*REPONSE

Aucune conversion n'est effectuée entre l'UTF16 et la page de code courante.

 

 

Par défaut, en Windows Unicode, les données à envoyer sont converties de l'Unicode vers la page de code courante (ANSI), et les données reçues sont converties de la page de code courante vers l'Unicode.

 

Option

Paramètres

Description

--conv-utf8

*DONNEES

Convertit la donnée à envoyer de l'Unicode en UTF8.

--conv-utf8

*REPONSE

Convertit la donnée reçue de l'UTF8 vers l'Unicode.

--no-conv

*DONNEES

*REPONSE

Aucune conversion n'est effectuée entre l'Unicode et la page de code courante.

 

 

Par défaut,in Windows (non Unicode), aucune conversion n'est effectuée sur les données à envoyer/à recevoir.

 

Option

Paramètres

Description

--conv-utf8

*DONNEES

Convertit la donnée à envoyer depuis la page de code courante (ANSI) en UTF8.

--conv-utf8

*REPONSE

Convertit la donnée reçue de l'UTF8 vers la page de code courante (ANSI).

 

Les noms des options doivent être saisis sans les caractères "--".

Le mode de conversion concerne également les paramètres *DONNEES et *REPONSE.

 

Exemple : --no-conv *REPONSE –no-conv *DONNEES)

 

    • Options diverses :

Option

Paramètres

Description

--location

Aucune valeur à indiquer

Autorise la redirection de protocole (par exemple de http à https).

Si le serveur renvoie un code HTTP 3xx, Adélia se charge automatiquement de renvoyer la requête au nouvel emplacement.

--request

GET | PUT | POST | DELETE | HEAD | OPTIONS | TRACE | PATCH

Méthode HTTP à utiliser.

--http1.0

Aucune valeur à indiquer

La version du protocole HTTP à utiliser est HTTP 1.0.

--http1.1

Aucune valeur à indiquer

La version du protocole HTTP à utiliser est HTTP 1.1.

--connect-timeout

<timeout>

Définit un temps maximum (en millisecondes) pour l'étape de la connexion au serveur.

Si le temps est dépassé, le mot réservé *CODE_RETOUR reçoit le code erreur 28.

Si l'option est définie plusieurs fois, c'est uniquement la dernière qui est prise en compte.

--max-time

<timeout>

Définit un temps maximum (en millisecondes) pour l'ensemble de l'opération : connexion + transfert des données.

Si le temps est dépassé, le mot réservé *CODE_RETOUR reçoit le code erreur 28.

Si l'option est définie plusieurs fois, c'est uniquement la dernière qui est prise en compte.

--user-agent

<agent utilisateur>

Chaîne alpha permettant à l'application cliente de s'identifier auprès du serveur.

Si l'option est définie plusieurs fois, c'est uniquement la dernière qui est prise en compte.

 

Exemple :

EXECUTER_HTTP

*URL('http://exemple.fr/aws_ressource')

*OPTIONS('--request GET --user-agent Mozilla/4.0')

*REPONSE(VAR_REP)

 

Retour à la liste des paramètres

 

*DONNEES

 

Le paramètre *DONNEES définit les données en entrée à envoyer aux serveurs.

Il se compose de deux champs (type et valeur) qui permettent de définir le type d'envoi et les données à envoyer.

 

Le champ type définit le mode d'envoi à exécuter :

 

Mode d'envoi

Description

DATA

Envoie des données alphanumériques.

Dans ce cas, le champ valeur peut être soit une variable alpha, une constante alpha ou une variable image contenant les données, soit une liste.

Lorsque le champ valeur est une liste, cette dernière se compose de la manière suivante :

Colonne 1 => Champ alphanumérique contenant le nom du champ.

Colonne 2 => Champ alphanumérique contenant le type de la valeur :    A | F

A : la valeur à envoyer est contenue dans la colonne 3 de type alpha.

F : la valeur à envoyer est contenue dans le fichier dont le nom est contenu dans la colonne 3.

 

Colonne 3 => Champ alphanumérique contenant soit la valeur, soit le nom d'un fichier.

Colonne 4 => Champ de type image.

Colonne 5 => Champ alphanumérique. Valeur ignorée.

 

Lorsque l'on définit à travers la liste plusieurs couples nom/valeur, les données à envoyer sont assemblées et séparées par le caractère &. Adélia envoie ainsi les données en utilisant le type MIME application/x-www-form-urlencoded.

DATA-FILE

Identique au type DATA, à la différence près que lorsque le champ valeur est une variable alpha ou une constante alpha, celui-ci contient le nom d'un fichier contenant les données à envoyer.

DATA-URLENCODE

Identique au type DATA, auquel on applique le codage d'URL : URL ENCODING.

Tous les caractères sont convertis en '%NN' (où NN est le code hexadécimal du caractère), à l'exception des caractères suivants : a-z, A-Z, 0-9, '-', '.', '_' et '~' .

DATA-URLENCODE-FILE

Identique au type DATA-URLENCODE, à la différence près que lorsque le champ valeur est une variable alpha ou une constante alpha, celui-ci contient le nom d'un fichier contenant les données à envoyer.

FORM

A la manière d'un formulaire HTML, les données sont envoyées en utilisant le type MIME multipart/form-data.

Il est possible de définir une liste de couples nom/valeur à envoyer au serveur.

Dans un formulaire HTML, nom représente le nom d'un champ du formulaire et valeur représente sa valeur.

Le champ valeur doit être une liste se composant de la manière suivante :

Colonne 1 => Champ alphanumérique contenant le nom du champ.

Colonne 2 => Champ alphanumérique contenant le type de la valeur :    A | F | I

A : la valeur à envoyer est contenue dans la colonne 3 de type alpha.

F : la valeur à envoyer est contenue dans le fichier dont le nom est contenu dans la colonne 3.

I : la valeur à envoyer est contenue dans la colonne 4 de type Image.

Colonne 3 => Champ alphanumérique contenant soit la valeur, soit le nom d'un fichier.

Colonne 4 => Champ de type image.

Colonne 5 => Champ alphanumérique indiquant le Content-type de la valeur (exemple : 'image.png'). Saisie facultative.

Le champ valeur peut également être une variable alpha, une constante alpha ou une image contenant les données à envoyer.

Lorsque ce type d'envoi est utilisé, la méthode HTTP est forcément la méthode POST. Il n'est pas nécessaire de la définir dans le paramètre *OPTIONS.

FORM-FILE

Identique au type FORM, à la différence près que lorsque le champ valeur est une variable alpha ou une constante alpha, celui-ci contient le nom d'un fichier contenant les données à envoyer.

 

Retour à la liste des paramètres

 

*HEADER

 

Le paramètre *HEADER est une liste Adélia contenant les en-têtes associés à la réponse faite par le serveur au client.

Chaque élément de la liste est constitué du nom de l'en-tête et de sa valeur.

 

Colonne 1

Þ

Champ alphanumérique contenant le nom de l'en-tête.
     

Colonne 2

Þ

Champ alphanumérique contenant la valeur de l'en-tête.

Paramètre facultatif.

Retour à la liste des paramètres

 

Réponse

 

Le paramètre Réponse contient la réponse faite par le serveur au client.

    • Si le paramètre est encapsulé par *REPONSE, il représente soit une variable alphanumérique, soit une variable de type image.
      La variable reçoit le contenu de la réponse.
    • Si le paramètre est encapsulé par *FICHIER, il représente une variable alphanumérique ou une constante alphanumérique, laquelle définit le nom du fichier dans lequel la réponse est écrite.

Paramètre facultatif.

Retour à la liste des paramètres

 

*COOKIES

 

Le paramètre *COOKIES est une liste en entrée/sortie.

En entrée, la liste peut contenir des Cookies à envoyer au serveur, récupérés par exemple en réponse d'une précédente requête. On y ajoute en sortie les Cookies retournés par le serveur.

Paramètre facultatif.

 

La liste doit contenir sept colonnes et avoir la structure suivante :

Colonne 1

Þ

Champ alphanumérique contenant le nom du Cookie
     

Colonne 2

Þ

Champ alphanumérique contenant la valeur du Cookie.
     

Colonne 3

Þ

Champ alphanumérique contenant la date d'expiration au-delà de laquelle le Cookie ne doit plus être envoyé.
Correspond à l'option expires de l'en-tête Set-Cookie.

Le champ Date doit avoir la forme suivante :

     

Date

Þ

EEE, dd MMM yyyy HH:mm:ss

     

EEE

Þ

Jour de la semaine (sur 3 caractères) : Mon | Tue | Wed | Thu | Fri | Sat | Sun

dd

Þ

Jour du mois : de 01 à 31

MMM

Þ

Mois (sur 3 caractères) : Jan | Feb | Mar | Apr | May | Jun | Jul | Aug | Sep | Oct | Nov | Dec

yyyy

Þ

Année (sur 4 chiffres)

HH

Þ

Heure : de 0 à 23

mm

Þ

Minutes

ss

Þ

Secondes
     

Colonne 4

Þ

Champ alphanumérique contenant le chemin, lequel doit exister dans la ressource demandée pour que le Cookie soit envoyé.Correspond à l'option path de l'en-tête Set-Cookie.
     

Colonne 5

Þ

Champ alphanumérique contenant le domaine pour lequel le Cookie doit être envoyé.Correspond à l'option domain de l'en-tête Set-Cookie.
     

Colonne 6

Þ

Champ booléen permettant de bloquer (ou non) l'envoi du Cookie sur un échange non sécurisé.Correspond à l'option secure de l'en-tête Set-Cookie.
     

Colonne 7

Þ

Champ booléen permettant de bloquer (ou non) la lecture du Cookie par un script JavaScript, côté navigateur.Correspond à l'option httpOnly de l'en-tête Set-Cookie.

 

 

 

Retour à la liste des paramètres

*CODE_HTTP

 

Le paramètre *CODE_HTTP reçoit en retour le code HTTP du résultat de la requête.

Paramètre facultatif.

 

Dans le cas d'une erreur interne ou bien en raison d'un mauvais passage de paramètre, il arrive que ce paramètre ne soit pas mis à jour.

Si cela arrive, il est possible de tester le mot réservé *CODE_RETOUR après l'exécution de l'instruction. Si l'opération s'est bien déroulée, *CODE_RETOUR renvoie *NORMAL.

 

-1

Paramètres invalides.

0

L'instruction s'est correctement exécutée.

1

Le protocole défini dans l'url n'est pas supporté.

2

Erreur interne.

3

L'url n'est pas correcte.

4

Au moins une des options définie dans le paramètre *OPTIONS n'est pas correcte.

5

Le proxy n'a pas été trouvé.

6

La ressource définie dans l'url n'a pas été trouvée.

7

Impossible de se connecter au serveur de destination ou au serveur proxy.

9

L'accès à la ressource n'est pas autorisé.

18

La taille des données transférées est trop grande.

23

Erreur lors de la récupération des données dans le paramètre Réponse.

25

Impossible de commencer le téléchargement des données.

26

Erreur lors de la lecture des données à envoyer.

27

Une demande d'allocation mémoire a échoué.

28

Le délai d'attente spécifié pour l'exécution de la requête a été atteint (timeout).

34

Erreur de la méthode HTTP POST.

35

Erreur lors de la connexion sécurisée (SSL). L'erreur peut être due à un problème de certificat, de droit utilisateur ou encore de mot de passe.

37

Impossible d'ouvrir le fichier indiqué dans l'url après 'FILE://'. Cela peut être dû à un problème de droit ou à une erreur dans la définition du chemin d'accès.

43

Erreur lors de l'appel d'une fonction interne.

47

La limite de redirection a été dépassée.

48

Une des options passées dans le paramètre *OPTIONS n'est pas connue.

51

Le certificat du serveur distant n'est pas correct.

52

Aucune information n'a été retournée par le serveur.

55

Erreur lors de l'envoi des données.

56

Erreur lors de la réception des données.

58

Erreur liée au certificat du client.

60

Les certificats renseignés dans la commande ne permettent pas d'authentifier le serveur.

61

L'encodage des données du transfert n'est pas reconnu.

65

Erreur lors du renvoi des données.

67

La connexion est rejetée par le serveur.

75

Erreur de conversion liée aux options de conversion des données.

77

Erreur à la lecture du fichier contenant les certificats pour l'authentification du serveur.

Le répertoire indiqué est incorrect ou l'utilisateur n'a pas les droits d'accès.

78

La ressource identifiée par l'url n'existe pas.

80

Echec de la fermeture de la connexion sécurisée.

88

Erreur lors du transfert en bloc (chunked transfer).

100

Erreur lors du décodage de la clé privée.

 

Retour à la liste des paramètres

 

Par exemple

* Consommation d'un service Web : récupération du détail d'une personne (opération de type GET)

 

EXECUTER_HTTP *URL('http://localhost :8080/demo/rest/personnes/1') *OPTIONS('--header Accept: application/json') *REPONSE(VAR_RES) *CODE_HTTP(WCODE_HTTP)

 

* Consommation d'un service Web : mise à jour du détail d'une personne (opération de type PUT)

 

EXECUTER_HTTP *URL('http://localhost :8080/demo/rest/personnes/1') *OPTIONS('--request PUT --header Content-Type: application/json --header Accept: application/json')  *DONNEES('DATA' , '{"PERSONNE": {"NumIdentif":1, "Nom":"DUPOND", "Prenom":"PASCAL"}}') *REPONSE(VAR_RES) *CODE_HTTP(WCODE_HTTP)

 

* Envoi d'une image en attachement (opération de type POST avec paramètre en multipart/form-data)

 

EXECUTER_HTTP *URL('http://localhost :8080/demo/rest/uploadimage')  *DONNEES('FORM-FILE' , 'C:\images\voiture.png') *CODE_HTTP(WCODE_HTTP)

 

 

↑ Haut de page


  • Aucune étiquette