DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Communication / Fonctions HTTP
  • Propriétés spécifiques à la description des variables de type restRequête
  • Gestion des redirections
  • Cookies HTTP
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
restRequête (Type de variable)
En anglais : restRequest
Le type restRequête permet de définir toutes les caractéristiques avancées d'une requête REST. Les caractéristiques de cette requête REST peuvent être définies et modifiées à l'aide de différentes propriétés WLangage.
Remarque : Pour plus de détails sur la déclaration de ce type de variable et l'utilisation des propriétés WLangage, consultez Déclaration d'une variable.
Exemple
cMaRequete est un httpRequête
cMaRequete.URL = "http://www.pcsoft.fr"
cMaReponse est un httpRéponse = RESTEnvoie(cMaRequete)
SI ErreurDétectée ALORS
Erreur(ErreurInfo(errComplet))
SINON
Info(cMaReponse.Contenu)
FIN
Remarques

Propriétés spécifiques à la description des variables de type restRequête

Les propriétés suivantes peuvent être utilisées pour manipuler une requête REST :
Nom de la propriétéType manipuléEffet
AgentUtilisateurChaîne de caractèresIdentifie le client. Par défaut, la valeur est "PC SOFT Framework".
Le contenu de la réponse peut dépendre de l'agent utilisateur (par exemple, une requête effectuée à partir d'un Mobile peut nécessiter des pages différentes d'une requête effectuée avec un navigateur PC). Dans ce cas, consultez la documentation de l'agent utilisateur pour plus de détails.
WEBDEV - Code Navigateur Non disponible.
Nouveauté 2024
Authentification
Constante de type EntierPermet de définir le mode d'authentification nécessaire pour avoir accès à certaines ressources du serveur ou du site :
  • auBasic : Le nom et le mot de passe sont en clair dans la requête.
  • auDigest : Le nom et le mot de passe sont modifié via un hash.
  • auNegotiate : Le client et le serveur échangent un certain nombre d'informations avant d'établir une connexion. Le protocole Kerberos est tout d'abord utilisé et s'il n'est pas disponible, le protocole NTLM est utilisé.
  • auNTLM : Le client et le serveur échangent un certain nombre d'informations avant d'établir une connexion via le protocole NTLM (Windows uniquement).
WEBDEV - Code Navigateur Non disponible.
AuthTokenVariable de type AuthTokenToken d'accès à un Webservice à utiliser en cas d'authentification via le protocole OAuth 2.0. Ce token d'accès a été récupéré via la fonction AuthIdentifie.
Le token d'accès est automatiquement passé au paramètre access_token directement sur l'URL. Si le paramètre doit être différent, construisez vous-même l'URL à exécuter.
WEBDEV - Code Navigateur Non disponible.
AvancementEnvoiVariable de type httpAvancementNotification de l'état d'avancement de l'envoi des données POST.
AvancementTéléchargementVariable de type httpAvancementNotification de l'état d'avancement de la réception des données.
CertificatClientChaîne de caractères ou bufferCorrespond :
  • à une chaîne de caractères contenant un chemin d'accès au fichier .p12 contenant le certificat à joindre à la requête. Le chargement du certificat se fera automatiquement en prenant :
    • le certificat présent dans la bibliothèque de l'exécutable (si il a été intégré à l'application),
    • le certificat présent à l'emplacement spécifié sur disque (si le certificat n'a pas été intégré dans la bibliothèque de l'exécutable).
  • à un buffer contenant le certificat (utilisation de la fonction fChargeBuffer).
Si cette propriété correspond à une chaîne vide (""), le certificat par défaut est réinitialisée à "<Aucun>".
CipherChoisiChaîne de caractèresNom du cipher choisi pour la requête sécurisée.
Cette propriété est disponible uniquement en lecture.
ContentTypeChaîne de caractèresType du contenu du message à envoyer au serveur. Cette propriété est prise en compte uniquement si la méthode d'envoi (propriété Méthode) le permet.
Par défaut, le type du message correspond à : "application/x-www-form-urlencoded".
Il est cependant possible de mettre n'importe quelle valeur, par exemple : "text/xml", "application/javascript", "application/json", "application/xml", "image/jpeg", ...
Pour envoyer des données brutes, qui seront lues en une seule fois par le serveur d'application WEBDEV, utilisez les types :
  • "application/octet-stream".
  • "text/xml".
ContenuBufferMessage à envoyer au serveur. Cette propriété est prise en compte uniquement si la méthode d'envoi (propriété Méthode) le permet.
Le message à envoyer doit respecter le protocole HTTP utilisé. Par défaut, si cette propriété est précisée et non vide, la méthode utilisée est une requête POST sinon c'est une requête GET.
WEBDEV - Code Navigateur ContenuBrutRéponse
BooléenIndique si la propriété Contenu doit correspondre au contenu brute :
  • Vrai : la propriété Contenu correspond à un buffer. Aucune modification n'est effectuée.
  • Faux (Valeur par défaut) : le contenu est modifié par le navigateur. En particulier, le texte UTF-8 est automatiquement décodé. la propriété Contenu retourne le résultat sous forme d'une chaîne.
DébitEnvoiMaxEntierVitesse maximale à utiliser pour l'envoi des données, exprimée en kilo-octets par seconde. Cette vitesse est donnée à titre indicatif.
0 (valeur par défaut) signifie que cette vitesse n'est pas limitée.
WEBDEV - Code Navigateur Non disponible.
DébitTéléchargementMaxEntierVitesse maximale à utiliser pour la réception des données, exprimée en kilo-octets par seconde. Cette vitesse est donnée à titre indicatif.
0 (valeur par défaut) signifie que cette vitesse n'est pas limitée.
WEBDEV - Code Navigateur Non disponible.
DestinationChaîne de caractèresChemin complet du fichier de sauvegarde du résultat de la requête.
WEBDEV - Code Navigateur Non disponible.
DuréeNonRéponseEntierTemps maximum d'attente de la réponse (exprimé en millisecondes). Cette propriété peut correspondre à :
  • un entier correspondant au nombre de millisecondes,
  • une variable de type Durée,
  • l'indication directe de la durée (par exemple 1 s ou 10 ms).
Par défaut, cette propriété vaut 20 secondes.
Remarque : Le timeout défini avec la fonction HTTPTimeOut n'a pas d'influence sur cette propriété.
WEBDEV - Code Navigateur Non disponible.
EntêteTableau associatif de chaînes de caractèresEnsemble clé/valeur des entêtes à envoyer.
Exemple d'utilisation de cette propriété :
cMaRequête est un httpRequête

cMaRequête.Entête["Authorization"] = ...
" WSSE profile=""UsernameToken"""
cMaRequête.Entête["X-WSSE"] = ...
"UsernameToken Username=blahblah "
cMaRequête.Entête["Cache-Control"] = " no-cache"
IgnoreErreurConstante de type EntierSpécifie les erreurs ignorées. Correspond à une constante ou une combinaison de constantes :
  • httpIgnoreCertificatInvalide : Le certificat est ignoré.
  • httpIgnoreNomCertificatInvalide : Le nom du site figurant dans le certificat est ignoré.
  • httpIgnoreCertificatExpiré : La date du certificat est ignorée.
  • httpIgnoreRedirection : La redirection vers une page est ignorée.
  • httpIgnoreRenvoiHTTP : Le renvoi vers un serveur non sécurisé est autorisé.
  • httpIgnoreRenvoiHTTPS : Le renvoi vers un serveur sécurisé est autorisé.
AndroidWidget Android Seules les erreurs suivantes sont gérées : httpIgnoreCertificatExpiré, httpIgnoreCertificatInvalide, httpIgnoreNomCertificatInvalide, httpIgnoreRévocation, httpIgnoreRedirection.
WEBDEV - Code Navigateur Non disponible.
MéthodeConstante de type EntierMéthode HTTP utilisée :
  • httpCopy : Méthode COPY (valeur 7).
  • httpDelete : Méthode DELETE (valeur 4).
  • httpGet : Méthode GET (valeur 1).
  • httpHead : Méthode HEAD (valeur 5).
  • httpLock : Méthode LOCK (valeur 12) (protocole WebDAV).
  • httpMkCol : Méthode MKCOL (valeur 10) (protocole WebDAV).
  • httpMove : Méthode MOVE (valeur 11) (protocole WebDAV).
  • httpPatch : Méthode PATCH (valeur 6).
  • httpPost : Méthode POST (valeur 2).
  • httpPropFind : Méthode PROPFIND (valeur 8) (protocole WebDAV).
  • httpPropPatch : Méthode PROPPATCH (valeur 9) (protocole WebDAV).
  • httpPut : Méthode PUT (valeur 3).
  • httpUnlock : Méthode UNLOCK (valeur 13) (protocole WebDAV).
Par défaut, si la propriété Contenu est non vide, la méthode httpPost est utilisée. Dans le cas contraire, la méthode httpGet est utilisée.
MotDePasseChaîne de caractèresMot de passe associé au nom d'utilisateur (chaîne vide par défaut). Permet d'accéder à une page avec une URL protégée. Attention : Le mot de passe est transmis en clair sur Internet.
Remarque : En renseignant les propriétés NomUtilisateur et MotDePasse, le "Authorization:Basic" correspondant est automatiquement généré dans l'entête de la requête.
MotDePasseCertificatClientChaîne de caractèresMot de passe associé au certificat client (chaîne vide par défaut).
ProcédureTraceProcédureNom de la procédure WLangage permettant de connaître les entêtes et les données envoyées. Cette procédure est de la forme :
PROCÉDURE <Nom procédure>(<TypeInfo> est entier,
<Data> est un Buffer)
où :
  • <TypeInfo> est une constante de type Entier correspondant au type de données tracées :
    • httpTraceDonnéeEnvoyée : Données envoyées.
    • httpTraceDonnéeRecue : Données reçues.
    • httpTraceEntêteEnvoyé : Entête envoyé.
    • httpTraceEntêteRecu : Entête reçu.
    • Nouveauté 2024
      httpTraceInfo : Informations détaillées sur l’exécution de la requête (erreur bas niveau de cURL/OpenSSL, étape en cours, avertissements, etc.).
  • <Data> est un buffer contenant les informations.
Exemple de procédure :
PROCÉDURE ProcTrace(nTypeInfo est entier, ...
bufByData est un Buffer)
SELON nTypeInfo
CAS httpTraceEntêteEnvoyé:
Trace("Entete : ", ...
UTF8VersChaîne(bufByData))
CAS httpTraceDonnéeEnvoyée:
Trace("Donnees : ", ...
bufByData)
CAS httpTraceEntêteRecu:
Trace("Entête reçu : ", ...
UTF8VersChaîne(bufByData))
CAS httpTraceDonnéeRecue:
Trace("Données reçues : ", ...
bufByData)
FIN
WEBDEV - Code Navigateur Non disponible.
TimeoutConnexionEntierTemps maximal d'attente pour la connexion exprimé en millisecondes (par défaut 20 secondes, soit 20000 millisecondes). Cette propriété peut correspondre à :
  • un entier correspondant au nombre de millisecondes,
  • une variable de type Durée,
  • l'indication directe de la durée (par exemple '20s' ou '20000ms').
Si à la fin de ce délai, la connexion n'a pas pu s'effectuer, il y a échec de la connexion (la fonction RESTEnvoie par exemple renverra une erreur, contenue dans la variable résultat de type restRéponse).
WEBDEV - Code Navigateur Non disponible.
URLChaîne de caractèresAdresse du serveur à contacter sous forme d'adresse URL.
Cette URL peut contenir :
  • le numéro de port pour la connexion sur le serveur.
    La valeur par défaut est 80 en HTTP (correspond à un serveur de pages Web) et 443 en HTTPS. Pour spécifier un numéro de port, utilisez le format : "<URL du serveur>:<N° du port>". Par exemple : "http://www.pcsoft.fr:80".
  • des paramètres supplémentaires. Ces paramètres peuvent permettre d'effectuer une recherche ou de remplir un formulaire. Par exemple, pour rechercher "pcsoft" sur "http://www.google.fr", l'URL à contacter sera : "http://www.google.fr/search?q=pcsoft".
Remarques :
  • Pour spécifier à la fois le numéro de port et des paramètres supplémentaires, utilisez le format : "<URL du serveur>:<N° du port>/<Paramètres supplémentaires>".
  • Pour réaliser une transaction sécurisée, l'URL doit commencer par la chaîne "https://". Dans ce cas, le mode de gestion des requêtes est toujours effectué par Internet Explorer (pour plus de détails, consultez la fonction HTTPParamètre).
UtilisateurChaîne de caractèresNom permettant d'accéder à une page avec une URL protégée (chaîne vide par défaut). Ce nom permet d'identifier l'utilisateur.
Remarque : En renseignant les propriétés NomUtilisateur et MotDePasse, le "Authorization:Basic" correspondant est automatiquement généré dans l'entête de la requête.
VersionHTTPConstante de type EntierVersion du protocole HTTP utilisée par le serveur :
  • httpVersion2 : Protocole HTTP version 2.0. Si le serveur ne gère pas cette version, une version plus ancienne est utilisée.
  • httpVersion2Uniquement : Protocole HTTP version 2.0 forcée : si le serveur ne gère pas cette version, une erreur fatale est affichée.
  • httpVersion1_1 : Protocole HTTP version 1.1.
  • httpVersion1_0 : Protocole HTTP Version 1.0.
  • httpVersionDéfaut : Protocole HTTP Version 1.0.
VersionSSLConstante de type EntierVersion SSL minimum et maximum à utiliser.
Pour limiter par exemple à TLS entre 1.1 et 1.3, il suffit d'indiquer la combinaison de constantes ProtocoleTLS1_1 + ProtocoleTLS1_3
Les constantes utilisables sont les suivantes :
  • ProtocoleDéfaut : Protocole par défaut. C'est la version la plus élevée qui est proposée (ou une version inférieure si le serveur ne supporte pas ce protocole).
  • ProtocoleTLS1 : Protocole TLS1.
  • ProtocoleTLS1_1 : Protocole TLS1.1.
  • ProtocoleTLS1_2 : Protocole TLS1.2.
  • ProtocoleTLS1_3 : Protocole TLS1.3.
WEBDEV - Code Navigateur Non disponible.
VersionSSLChoisieConstante de type EntierVersion SSL choisie pour une requête sécurisée :
  • ProtocoleDéfaut : Protocole par défaut (TLS 1.2).
  • ProtocoleTLS1 : Protocole TLS1.
  • ProtocoleTLS1_1 : Protocole TLS1.1.
  • ProtocoleTLS1_2 : Protocole TLS1.2.
  • ProtocoleTLS1_3 : Protocole TLS1.3.
WEBDEV - Code Navigateur Non disponible.
Cette propriété est disponible uniquement en lecture.

Gestion des redirections

Par défaut, les redirections sont gérées. Pour ne pas gérer les redirections, utilisez la constante httpIgnoreRedirection dans la propriété IgnoreErreur.
WINDEVWEBDEV - Code ServeurAndroidWidget AndroidiPhone/iPadAjax

Cookies HTTP

Les cookies reçus en réponse à un appel de la fonction RESTEnvoie sont conservés dans l'attente d'un appel ultérieur à la fonction RESTEnvoie sur le même domaine : la variable de type restRequête est mise à jour.
Pour plus de détails, consultez la fonction HTTPCookieGère.
Version minimum requise
  • Version 20
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 23/02/2024

Signaler une erreur ou faire une suggestion | Aide en ligne locale