EDIT : 15 Mai 2010
Windev 15061f contient de nouvelles fonctions pour la gestion des cookies, elles ne sont pas encore documentées à l'heure où j'écris ces lignes
mais en voici la liste :
HTTPCookieEcrit(<Domaine>,<Nom>,<Valeur>) HTTPCookieGère([<Domaine>,]<bActive>) <Résultat> = HTTPCookieLit(<Domaine>,<Nom>) HTTPCookieRAZ([<Domaine>]) <Résultat> = HTTPCookieRécupère(<Domaine>) HTTPCookieRemplace(<Domaine>,<TabCookie>)
C'est une classe de Requetage HTTP pour Windev 10 et + qui gère la sauvegarde de cookies (automatiquement).
Elle permet d'émuler un navigateur web afin de visiter un site avec identification sans composant IE.
Cela permet d'automatiser certains traitements, par exemple rebooter un serveur dédié par une interface web
mais aussi de récupérer des informations après execution d'un formulaire avec bouton (Méthode POST) (horaires ratp, météo etc)
Cette classe fonctionne en mode Socket ou grace à la fonction HttpRequete au choix...
Une limitation, le protocole Https n'est pas géré, mais cela peut etre fait avec windev 11 ou 12 (je ne sais plus) ou en mode HttpRequete
Exemple d'utilisation permettant de rebooter une dedibox via l'interface d'administration web :
oHTTP est un cHttpCookies //Login sur la console web oHTTP:addPostData("action","login") oHTTP:addPostData("login",SAI_Login) oHTTP:addPostData("pass",SAI_Passw) oHTTP:addPostData("ssl","0") //Affichage du resultat dans un champ IE (HTML) SI oHTTP:OpenUrl("http://console.dedibox.fr/accueil/") ALORS SI (oHTTP:Get()) ALORS oHTTP:EmuleBaseHREF() HTM_HTML1=oHTTP:DATA FIN FIN //On a maintenant recu le le cookie d'identification de session, on peut continuer... SI PAS OuiNon("REBOOTER SERVEUR ?") ALORS RETOUR FIN oHTTP:addPostData("server[15783]","on") SELON SEL_Opération CAS 1 oHTTP:addPostData("action","reboot_soft") CAS 2 oHTTP:addPostData("action","reboot_hard") FIN SI oHTTP:OpenUrl("http://console.dedibox.fr/liste/") ALORS SI (oHTTP:Get()) ALORS oHTTP:EmuleBaseHREF() HTM_HTML1=oHTTP:DATA FIN FIN
Fichier attaché | Taille | Downloads | Last Download |
---|---|---|---|
cHttpCookies.v1.1.wdcOnly.wd10.zip | 26.14 Ko | 5591 | il y a 6 jours 7h |
cHttpCookies.v1.1.wdcOnly.wd10.7z | 26.34 Ko | 5759 | il y a 5 jours 11h |
Commentaires
Il manque peut-être la
Il manque peut-être la possibilité de ne pouvoir passer qu'un seul paramètre à addPostData, par exemple pour envoyer un fichier XML à un web service (et en précisant le content-type). Exemple auquel nous nous sommes confrontés : le service XML-RPC de Dokuwiki, qui, lorsque les ACL sont activées, demande une identification et une gestion des cookies (d'où l'intérêt de la classe cHttpCookies par rapport à un HTTPRequête limité) pour pouvoir ajouter ou modifier des pages via ce service XML-RPC.
Oui peut etre, mais cette
Oui peut etre, mais cette classe a pour vocation d'etre une base simple...
Meme si c'est tres proche, c'est une surcouche au standard HTTP (XML over HTTP) et il y en a d'autres... pas forcement compatibles...
Je vous conseille de rajouter une Methode "XMLRPC" ou "SOAP" pour gérer ce cas... et de créer la méthode openUrl_XMLRPC() pour gérer ce cas de figure..
faites une recherche sur "SOCKET" avec les guillemets dans la classe pour savoir ou rajouter la méthode...
Mise à jour WinDev 15
Bonjour Tanguy,
Depuis hier, les fonctions HTTP accepte la gestion des cookies, un nouveau type de variable est aussi apparu nommée tout simplement "cookies". Cela dit, ce n'est pas encore documentée dans l'aide en ligne de WinDev v15-61j. Bravo encore pour votre contribution très "technique" en WinDev.
Cordialement,
Xavier.
:)
Oui, j'en avais entendu parlé, mais je ne l'avais pas encore testé...
Malgré tout, je pense que ma classe est encore utile, pour les anciennes versions de windev... ou pour pouvoir voir exactement ce qu'il se passe au niveau de l'échange de cookies... (identification sur google par exemple)
Bonjour Tanguy, je voudrait
Bonjour Tanguy,
je voudrait compléter ta classe pour gérer une discussion WEBDAV avec iKeepinCloud. Le but est de faire des transfert d'enregistrements sérialisés en XML par ex entre un serveur windows hfcs et des mobiles avec une appli windev mobile android donc une base sqlite.
En faite refaire les mécanismes de réplication vraiment hétérogènes de PCSoft.
Tu aurait des pistes à me donner ?
Merci d'avance...