|
|
|
|
|
- Erreur de sécurité dans une transaction sécurisée
- Récupération du résultat
- Accéder à une URL protégée par mot de passe
- Utilisation d'un proxy
- En-têtes d'authentification
HTTPRequête (Fonction) En anglais : HTTPRequest
Avertissement
A partir de la version 28, cette fonction est conservée uniquement par compatibilité (notamment pour la programmation en PHP). Il est conseillé d'utiliser une variable de type httpRequête avec la fonction HTTPEnvoie.
Lance une requête HTTP sur un serveur. Le résultat de la requête (buffer) peut être : Remarques : - Deux types de requêtes sont gérés : POST et GET. Les requêtes de type GET sont automatiques. Si le "Message à envoyer" n'est pas précisé, il s'agit d'une requête GET (voir syntaxe). Pour gérer des formulaires, il est conseillé d'utiliser les fonctions de gestion des formulaires (HTTPCréeFormulaire, HTTPEnvoieFormulaire, ...).
ResLancement = HTTPRequête("http://www.pcsoft.fr")
ResLancement = HTTPRequête("http://www.pcsoft.fr", ...
"", "", "", "", "Julie", "MotDePasse")
Syntaxe
<Résultat> = HTTPRequête(<URL à  contacter> [, <Agent utilisateur> [, <Entête HTTP supplémentaire> [, <Message à  envoyer> [, <Type du message> [, <Nom User> [, <Mot de passe>]]]]]])
<Résultat> : Booléen - Vrai si la requête a été lancée,
- Faux en cas d'erreur. Pour connaître le libellé de l'erreur, utilisez la fonction ErreurInfo avec la constante errMessage.
Le résultat de la requête peut être enregistré dans un fichier de sauvegarde grâce à la fonction HTTPDestination ou récupéré grâce à la fonction HTTPDonneRésultat.
<URL à contacter> : Chaîne de caractères Adresse du serveur à contacter sous forme d'adresse URL. Ce paramètre peut contenir :- le numéro de port pour la connexion sur le serveur. La valeur par défaut est 80 (correspond à un serveur de pages Web). 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).
<Agent utilisateur> : Chaîne de caractères optionnelle Identifie le client. Par défaut, le nom de l'application est envoyé. Le contenu de la réponse peut dépendre de l'agent utilisateur (par exemple, une requête effectuée à partir d'un mobile 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. <Entête HTTP supplémentaire> : Chaîne de caractères optionnelle - Entête HTTP supplémentaire à ajouter au message HTTP,
- Chaîne vide ("") si aucun entête HTTP ne doit être ajouté.
<Message à envoyer> : Chaîne de caractères optionnelle Message HTTP à envoyer au serveur. Ce paramètre peut être spécifié uniquement dans le cas d'une requête d'envoi de message (requête POST). Le message à envoyer doit respecter le protocole HTTP utilisé. Si ce paramètre est précisé et non vide, il s'agit d'une requête POST sinon c'est une requête GET (tout le reste est automatique). <Type du message> : Chaîne de caractères optionnelle Type du contenu du message HTTP à envoyer au serveur. Ce paramètre peut être spécifié uniquement dans le cas d'une requête d'envoi de message (requête POST). Ce paramètre correspond au "Content-Type". 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".
<Nom User> : Chaîne de caractères optionnelle Nom 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 paramètres <Nom User> et <Mot de passe>, le "Authorization:Basic" correspondant est automatiquement généré dans l'entête de la requête.
<Mot de passe> : Chaîne de caractères optionnelle Mot 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 paramètres <Nom User> et <Mot de passe>, le "Authorization:Basic" correspondant est automatiquement généré dans l'entête de la requête.
Remarques Erreur de sécurité dans une transaction sécurisée Lors d'une transaction sécurisée, certaines erreurs de sécurité peuvent faire échouer la requête : - certificat invalide ou ne provenant pas d'une société connue.
- nom du site figurant dans le certificat ne correspond pas à un serveur.
- date du certificat non-valide ou expiré.
- renvoi vers un serveur non sécurisé.
- ...
Ces erreurs sont renvoyées par la fonction ErreurInfo. Si une de ces erreurs est rencontrée, il est possible d'exécuter à nouveau la requête en ignorant ces erreurs. Pour cela, il suffit d'utiliser la variable HTTP.IgnoreErreur. La variable HTTP.IgnoreErreur permet également de gérer certains cas particuliers lors des transactions sécurisées (par exemple, ne pas prendre en compte la liste des certificats révoqués). | | | Erreur renvoyée par la fonction ErreurInfo (avec la constante errCode) | Valeur de HTTP.IgnoreErreur (ces valeurs peuvent être combinées) | Description |
---|
httpErreurCertificatInvalide Certificat invalide ou ne provenant pas d'une société connue | httpIgnoreCertificatInvalide | Le certificat est ignoré. | httpErreurNomCertificatInvalide Nom du site figurant dans le certificat ne correspond pas à un serveur | httpIgnoreNomCertificatInvalide | Le nom du site figurant dans le certificat est ignoré. | httpErreurCertificatExpiré Date du certificat non-valide ou expiré | httpIgnoreCertificatExpiré | La date du certificat est ignorée | httpErreurRenvoiHTTP Renvoi vers un serveur non sécurisé | httpIgnoreRenvoiHTTP | Le renvoi vers un serveur non sécurisé est autorisé. | httpErreurRenvoiHTTPS Renvoi vers un serveur sécurisé | httpIgnoreRenvoiHTTPS | Le renvoi vers un serveur sécurisé est autorisé. | | httpIgnoreRedirection | La redirection vers une page est ignorée. | | httpIgnoreRévocation | Le contrôle du certificat dans la liste des certificats révoqués n'est pas effectué. |
Par exemple :
ResLancement = HTTPRequête("https://www.MonServeur.com")
SI ResLancement = Faux ALORS
SELON ErreurInfo(errCode)
CAS httpErreurCertificatInvalide :
SI OuiNon("Alerte de sécurité détectée !", ...
"Certificat invalide.", ...
"Ignorer ce certificat ?") = Oui ALORS
HTTP.IgnoreErreur = httpIgnoreCertificatInvalide
HTTPRequête("https://www.MonServeur.com")
FIN
CAS httpErreurCertificatExpiré :
SI OuiNon("Alerte de sécurité détectée !", ...
"Date du certificat invalide ou expiré.", ...
"Ignorer cette date ?") = Oui ALORS
HTTP.IgnoreErreur = httpIgnoreCertificatExpiré
HTTPRequête("https://www.MonServeur.com")
FIN
FIN
FIN
Remarques : - Lorsque des requêtes HTTP sont faites dans plusieurs threads, la variable HTTP.IgnoreErreur possède une valeur spécifique par thread.
Récupération du résultat La fonction HTTPDonneRésultat permet de récupérer le résultat de la dernière requête HTTP lancée. Lorsqu'une destination fichier est précisée avec la fonction HTTPDestination : - la fonction HTTPDonneRésultat utilisée avec la constante httpRésultat renvoie toujours une chaîne vide ("").
- la fonction HTTPDonneRésultat utilisée avec la constante httpEntête renvoie toujours l'entête de la réponse HTTP. Cet entête n'est pas enregistré dans le fichier destination : seules les données sont enregistrées.
Lorsque la requête est terminée, la destination est annulée et la fonction HTTPRequête fonctionne normalement. Composante : wd300com.dll
Documentation également disponible pour…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|