|
https et cookies en WinDev 20 |
Débuté par garfield, 19 mai 2015 11:57 - 7 réponses |
| |
| | | |
|
| |
Posté le 19 mai 2015 - 11:57 |
Bonjour à tous,
Je dois accéder à un site en https, faire un login, et récupérer des informations.
sRésultat est une chaîne sAgent est une chaîne = "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.152 Safari/537.36"
HTTPCookieGère(".mon_domaine.com",Vrai)
HTTPRequête("https://secure.mon_domaine.com",sAgent) sRésultat = HTTPDonneRésultat()
HTTPCréeFormulaire("FORM") HTTPAjouteParamètre("FORM","user_login","admin") HTTPAjouteParamètre("FORM","user_pass","mdp") HTTPEnvoieFormulaire("FORM","https://secure.mon_domaine.com/log_post.php",httpPost,sAgent) sRésultat = HTTPDonneRésultat()
HTTPRequête("https://secure.mon_domaine.com/select.php?id=xxxx",sAgent) sRésultat = HTTPDonneRésultat()
Je ne comprends pas trop, normalement on doit : 1. activer la gestion des Cookies 2. envoyer un formulaire POST 3. ça devrait fonctionner
PS. J'ai déjà utilisé la classe de Tanguy sur des requêtes http, mais j'ai lu sur son site que cette classe ne fonctionne pas en https.
Les idées sont les bienvenues.
Merci. |
| |
| |
| | | |
|
| | |
| |
Posté le 19 mai 2015 - 15:07 |
Bonjour,
je trouve que ton code manque de tests qui permettraient de savoir d’où vient le problème
Par exemple :
Qua vaut sresultat ? Est ce normal? que vaut l'entête de la réponse ?
// je prépare mon formulaire d'identification et je l'envoie HTTPCréeFormulaire("FORM") HTTPAjouteParamètre("FORM","user_login","admin") HTTPAjouteParamètre("FORM","user_pass","mdp") HTTPEnvoieFormulaire("FORM"," https://secure.mon_domaine.com/log_post.php",httpPost,sAgent)//,"","XMLHttpRequest") sRésultat = HTTPDonneRésultat() // sRésultat = vide Et que vaut l'entête du résultat ? Ca devrait te donner des infos
Cordialement
-- Fabrice Harari Consultant WinDev, WebDev et WinDev Mobile International
Disponible : WXShowroom.com, WXReplication (open source) Bientôt : WXEDM (open source) Plus d'information sur http://fabriceharari.com
// je récupère mon info HTTPRequête(" https://secure.mon_domaine.com/select.php…) sRésultat = HTTPDonneRésultat() // sRésultat = vide et ErreurInfo = Une erreur système a été détectée pendant l'envoi de la requête HTTP. [/code] Je ne comprends pas trop, normalement on doit : 1. activer la gestion des Cookies 2. envoyer un formulaire POST 3. ça devrait fonctionner PS. J'ai déjà utilisé la classe de Tanguy sur des requêtes http, mais j'ai lu sur son site que cette classe ne fonctionne pas en https. Les idées sont les bienvenues. Merci. |
| |
| |
| | | |
|
| | |
| |
Posté le 19 mai 2015 - 17:03 |
Donc voici les entêtes :
sEntête est une chaîne sRésultat est une chaîne sAgent est une chaîne = "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.152 Safari/537.36"
HTTPCookieGère(".eedomus.com",Vrai)
HTTPRequête("https://secure.mon_domaine.com",sAgent) sEntête = HTTPDonneRésultat(httpEntête)
sRésultat = HTTPDonneRésultat()
HTTPCréeFormulaire("FORM") HTTPAjouteParamètre("FORM","user_login","admin") HTTPAjouteParamètre("FORM","user_pass","mdp") HTTPEnvoieFormulaire("FORM","https://secure.mon_domaine.com/log_post.php",httpPost,sAgent)
sEntête = HTTPDonneRésultat(httpEntête)
sRésultat = HTTPDonneRésultat()
HTTPRequête("https://secure.mon_domaine.com/select.php?id=xxxx",sAgent)
sEntête = HTTPDonneRésultat(httpEntête) sRésultat = HTTPDonneRésultat()
A partir d'un navigateur et une fois identifié sur le site avec le login et mot de passe, je peux sans problème lancer ma requête https://secure.mon_domaine.com/select.php… qui me renvoie un JSON. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 36 messages |
|
Posté le 19 mai 2015 - 17:27 |
Bonjour,
voir la doc sur HTTPParamètre : http://doc.pcsoft.fr/fr-FR/index.awp?1000018985
Il est indiqué : Si une requête sécurisée ("https") est exécutée, le mode de gestion des requêtes est toujours effectué par Internet Explorer.
Bon dev,
Olivier |
| |
| |
| | | |
|
| | |
| |
Posté le 19 mai 2015 - 17:47 |
J'ai testé avec :
HTTPParamètre(httpParamètreMode,1) Cela ne change rien
Si quelqu'un a un bout de code en exemple pour un login https POST puis une requête, je suis preneur pour comprendre. |
| |
| |
| | | |
|
| | |
| |
Posté le 19 mai 2015 - 19:13 |
Humhum, en debuggant avec IE, j'obtiens ceci dans l'entête de demande de login quand j'envoie le formulaire :
CléValeur DemandePost /log_post.php HTTP/1.1 Accept*/* X-Requested-WITHXMLHttpRequest Content-Typeapplication/x-www-form-urlencoded; charset=UTF-8 Refererhttps://secure.mon_domaine.com/ Accept-Languagefr-FR Accept-Encodinggzip, deflate User-AgentMozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko Hostsecure.mon_domaine.com Content-Length113 ConnectionKeep-Alive Cache-ControlNo-cache Cookie__utma=182776882.1127850173.14 ...
Question : comment gérer en WinDev un XMLHttpRequest, car cela vient peut-être de là ?
Et voici ce que j'ai en retour dans l'entête de réponse :
CléValeur RéponseHTTP/1.1 200 OK DateTue, 19 May 2015 16:35:22 GMT Servermon_domaine X-Frame-OptionsSAMEORIGIN ExpiresThu, 19 Nov 1981 08:52:00 GMT Cache-ControlNo-store, No-cache, must-revalidate, Post-check=0, pre-check=0 PragmaNo-cache Set-Cookiel=xxxxxxxx; expires=Fri, 17-Nov-2017 04:35:23 GMT;HttpOnly;Secure Set-Cookiep=912509f11xy208f96513a6b500f1fcc6; expires=Fri, 17-Nov-2017 04:35:23 GMT;HttpOnly;Secure Keep-Alivetimeout=60, Max=111 ConnectionKeep-Alive Content-Typetext/html; charset=ISO-8859-1 Content-Length79
Et là je recupère bien mon Cookie.
Avez des idées ou pistes ?
Merci |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 36 messages |
|
Posté le 20 mai 2015 - 17:53 |
Bonjour,
un XMLhttpRequest n'est rien d'autre qu'une requête HTTP. Le problème ne vient pas de là.
Au niveau entêtes : le problème est probablement que l'envoi du formulaire se fait sans le cookie au niveau du header.. Je doute que ce soit géré par HTTPEnvoieFormulaire. La doc sur HTTPCookieGere indique qie les cookies sont égérés pour HTTPRequete et HTTPEnvoie (nouveauté WD20) : http://doc.pcsoft.fr/fr-FR/?1000019218&name=httpcookiegere_fonction
Au niveau du corps : avez-vous vérifié avec un proxy ou en faisant une capture de paquet que ça correspond bien à ce qui se passe avec un navigateur.
Bonne nouvelle : les nouvelles variables httprequete et httpréponse de la version 20 devrait vous aider à construire vos requêtes.
Bon dev,
Olivier |
| |
| |
| | | |
|
| | |
| |
Posté le 04 juin 2015 - 20:54 |
Salut,
"X-Requested-WITH: XMLHttpRequest"+RC
A ajouter tout simplement en en-tête supplémentaire HTTP |
| |
| |
| | | |
|
| | | | |
| | |
|