PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

PV

  • Propriétés spécifiques à la description des variables de type httpRequête
  • Remarque
  • 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
Le type httpRequête permet de définir toutes les caractéristiques avancées d'une requête HTTP/HTTPS. Les caractéristiques de cette requête HTTP/HTTPS 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
cMaRequête est un httpRequête
cMaRequête.URL = "https://www.pcsoft.fr"
cMaRéponse est un httpRéponse = HTTPEnvoie(cMaRequête)
SI ErreurDétectée ALORS
Erreur(ErreurInfo(errComplet))
SINON
Info(cMaRéponse.Contenu)
FIN
Remarques

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

Les propriétés suivantes peuvent être utilisées pour manipuler une requête HTTP/HTTPS :
Nom de la propriétéType manipuléEffet
AgentUtilisateurChaîne de caractèresIdentifie le client. Par défaut, la valeur correspond au nom de l'application.
Le contenu de la réponse peut dépendre de l'agent utilisateur (par exemple, une requête effectuée à partir d'un Palm Pilot nécessite 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.
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 http à 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.
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>".
ContentTypeChaîne de caractèresType du contenu du message HTTP à 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 HTTP à 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 HTTP.
WEBDEV - Code Navigateur Non disponible.
DuréeNonRéponseEntier ou DuréeTemps 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 '1s' ou '10ms').
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.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é.
  • httpIgnoreRévocation : Le contrôle dans la liste des certificats révoqués est ignoré.
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.
  • httpDelete : Méthode DELETE.
  • httpGet : Méthode GET.
  • httpHead : Méthode HEAD.
  • httpLock : Méthode Lock (protocole WebDAV).
  • httpMkCol : Méthode mkCol (protocole WebDAV).
  • httpMove : Méthode Move (protocole WebDAV).
  • httpPatch : Méthode PATCH.
  • httpPost : Méthode POST.
  • httpPropFind : Méthode PROPFIND (protocole WebDAV)..
  • httpPropPatch : Méthode PROPPATCH (protocole WebDAV).
  • httpPut : Méthode PUT.
  • httpUnlock : Méthode Unlock (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 et reçues. 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.
  • <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("Entête envoyé : ", ...
UTF8VersChaîne(bufByData))
CAS httpTraceDonnéeEnvoyée:
Trace("Données envoyées : ", ...
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.
TimeoutConnexionEntier ou DuréeTemps 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 20 s ou 20000 ms).
Si à la fin de ce délai, la connexion n'a pas pu s'effectuer, il y a échec de la connexion (la fonction HTTPEnvoie par exemple renverra une erreur, contenue dans la variable résultat de type httpRé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 Utilisateur 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 utilisée :
  • ProtocoleDéfaut : Protocole par défaut (TLS 1.2).
  • ProtocoleTLS1 : Protocole TLS1.
  • ProtocoleTLS1_1 : Protocole TLS1.1.
  • ProtocoleTLS1_2 : Protocole TLS1.2.
WEBDEV - Code Navigateur Non disponible.

Remarque

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 HTTPEnvoie sont conservés dans l'attente d'un appel ultérieur à la fonction HTTPEnvoie sur le même domaine : la variable de type httpRequête est mise à jour.
Pour plus de détails, consultez la fonction HTTPCookieGère.
Version minimum requise
  • Version 20
Documentation également disponible pour…
Commentaires
..Methode = httpPost malgré formulaire
Attention, depuis WD26, la modification de la méthode ne se fait plus automatiquement quand un formulaire est ajouté à la requête.
Par défaut, la requête reste en GET et il faut préciser "requete..Methode = httpPost"
teyermann
01 sep. 2021
..httpIgnoreCertificatInvalide n'est pas fonctionnel en Linux
La documentation ne le dit pas mais ..httpIgnoreCertificatInvalide n'est pas possible en Linux. Il faut utiliser httpIgnoreCertificatExpiré+httpIgnoreCertificatInvalide+httpIgnoreNomCertificatInvalide
Philippe Jean
30 juil. 2019