IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Qt Discussion :

Est t'il possible de se connecter à un site web demandant un identifiant et un mot de passe?


Sujet :

Qt

  1. #1
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut Est t'il possible de se connecter à un site web demandant un identifiant et un mot de passe?
    Bonjour,

    Je voudrais savoir si avec Qt, et la simple classe QHttp il était possible de s'identifier sur un site web, qui demande donc un identifiant et un mot de passe.
    Je pense que le site web en question, une fois identifié stocke un cookie pour reconnaitre la machine.

    Comment faire pour s'identifier, et récupéré ce cookie ( en espérant que le cookie se récupère automatiquement ).

    Je pense qu'il faudrait envoyer une requête Http avec deux champs POST remplie mais je n'en suis pas sur, est ce la bonne voie?

    Merci pour vos réponses.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  2. #2
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968

  3. #3
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Pour le QHttp je le savais un peu :s ( je l'utilise déjà pour récupéré un fichier XML sur un site ).

    Mais je ne comprend pas comment utiliser le post pour faire ce que je veux.
    Car la fonction demande soit un QByteArray soit un QIODevice.
    D'après la page web en question, elle utilise la methode post, en demandant de remplir un champs "username" et un champ "password".

    Dois je remplir le QByteArray avec des QStrings pour remplir "username" et "password"

    Dois je les réintégré dans le QByteArray ( genre remplir avec username=monUserName puis password=monPassWord ) ... ou je sais pas trop.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  4. #4
    Modérateur
    Avatar de nouknouk
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    1 655
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 655
    Points : 2 161
    Points
    2 161
    Par défaut
    Je pense que Yan parlait plus précisément de cette partie là.
    Mon projet du moment: BounceBox, un jeu multijoueurs sur Freebox, sur PC et depuis peu sur smartphone/tablette Android.

  5. #5
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Je m'excuse, mais je ne suis pas sur que cela va aller.
    Car c'est une page, comme celle de ce forum, avec deux cases à remplir et un bouton pour envoyer la commande.
    setUser semble super bien, mais n'est ce pas pour les pages qui demandent une authetification en faisant apparaitre un prompt.
    Moi je parle d'une page html à remplir, dont le resultat et envoyer par la commande 'post' ( code html ).

    Je fais peut être erreur ...
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  6. #6
    Modérateur
    Avatar de nouknouk
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    1 655
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 655
    Points : 2 161
    Points
    2 161
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    Je fais peut être erreur ...
    Non, c'est moi qui avais mal compris ton besoin.

    Dans ton cas, ceci pourrait aider.
    Mon projet du moment: BounceBox, un jeu multijoueurs sur Freebox, sur PC et depuis peu sur smartphone/tablette Android.

  7. #7
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Citation Envoyé par nouknouk Voir le message
    Je pense que Yan parlait plus précisément de cette partie là.
    problème de copier coller. Je parlé de ce signal
    http://qt.developpez.com/doc/4.5/qht...cationrequired

  8. #8
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Je ne sais as... je vais bien essayé, mais comme je l'ai dit ce n'est pas une authentification qu'il me faut ... enfin je suis pas sur, mais ce n'est pas le genre de "nagscreen" ( boite de dialogues demandant deux champs ) qui apparait sur toute les pages ...
    C'est juste que je pense devoir remplir un formulaire ( html ) pour faire une authentification ( soit avoir le cookie en question ).

    Voici le code de la page que je dois remplir

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <form action="." method="post">
     
    	<table>
    	<tr><th><label for="id_username">Username:</label></th><td><input id="id_username" type="text" name="username" maxlength="30" /></td></tr>
    <tr><th><label for="id_password">Password:</label></th><td><input type="password" name="password" id="id_password" /></td></tr>
    	</table>
    	<input type="submit" value="Log In" />
    </form><br />
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  9. #9
    Modérateur
    Avatar de nouknouk
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    1 655
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 655
    Points : 2 161
    Points
    2 161
    Par défaut
    re:
    Citation Envoyé par nouknouk Voir le message
    Dans ton cas, ceci pourrait aider.
    Mon projet du moment: BounceBox, un jeu multijoueurs sur Freebox, sur PC et depuis peu sur smartphone/tablette Android.

  10. #10
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    J'ai essayé le dernière astuce que me semblait la meilleure,
    [EDIT]
    Suppression de ma requete car j'ai fais une horrible erreur. Je m'excuse d'avoir posté inutilement ( au cas où des gens aurait lu mon code ).
    [/EDIT]
    Si je bloque encore, je risque de revenir par contre :s

    Merci pour votre aide ( j'ai pas encore dit que ça marchait :p )

    [EDIT 2]
    Finalement, il semblerait que j'ai réussi.
    Juste que j'ai pas vraiment de moyen de vérifié la réponse du serveur, si quelqu'un à une idée ?
    [/EDIT 2]

    Merci à tous ( et la solution utilisée et celle ci: http://qtwiki.org/QHTTP_send_post_request )

    [EDIT 4]
    Quelqu'un connait un logiciel pour tracer les requetes http ( du moins les entêtes ) d'un programme ?
    [/EDIT 4]
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  11. #11
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 774
    Points : 969
    Points
    969
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    [EDIT 4]
    Quelqu'un connait un logiciel pour tracer les requetes http ( du moins les entêtes ) d'un programme ?
    [/EDIT 4]
    Je ne sais pas ce que tu entends par "tracer" mais Wireshark est "le" logiciel d'analyse de traffic réseau.

    G.
    Un problème avec Qt ? Vous trouverez votre réponse ici : http://doc.trolltech.com/4.6/overviews.html
    En français (traduction réalisée par l'équipe Qt de DVP) : http://qt.developpez.com/doc/4.6/vues-d-ensemble/

  12. #12
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Pour wireshark, je le savais, merci. Mais au premier essaie il ne semblait pas affiché ce que je voulais.

    Si vous connaissez, je voudrai un truc qui affiche la même chose que ce que affiche LiveHTTPHeaders ( plugin firefox )

    Enfin, merci pour votre aide
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  13. #13
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Grande nouvelle,

    J'ai réussi \o/
    À priori il existe des logicielles sous windows pour voir les entêtes ... mais j'ai pas essayé travaillant sous linux.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  14. #14
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    Grande nouvelle,

    J'ai réussi \o/
    À priori il existe des logicielles sous windows pour voir les entêtes ... mais j'ai pas essayé travaillant sous linux.
    Tu as utilisé quoi alors?

  15. #15
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    OUps pardon.

    Donc comme j'ai dit pour envoyé la requete POST, il faut remplir une structure QHttpRequestHeader ( voir http://qtwiki.org/QHTTP_send_post_request )

    Pour savoir quoi mettre dedans, j'ai utilisé HTTPLiveHeaders ( plugin firefox ) afin de copier ce que faisais Firefox ( donc j'ai rempli les champs avec la même que ce que ferai firefox ).

    Après il faut connecter le signal responseHeaderReceived(const QHttpResponseHeader&)
    à une fonction pour savoir ce que dit le serveur à propos de la requête ( connection réussie ou pas ) et grace à QHttpResponseHeader avec la méthode value("Set-Cookie-set") on récupère le cookie ( pour moi un session-id )

    Une fois que l'on a le cookie ( donc on est identifié ), on peut envoyé des requêtes avec la méthode GET ( donc on reproduit relativement ce que l'on fait pour la méthode POST ) remplissage de la structure QHttpRequestHeader ... afin de lui donné le cookie setValue("Cookie", lecookie);

    Et ça marche.
    Je demandais un logiciel, pour voir les HTTP Header... mais je n'en ai pas trouvé pour linux ( wireshark ne me donnait pas l'information au premier coup d'oeil ). J'avais raison, car finalement, je n'avais pas de gros problème, juste l'oublie d'un '/' pour l'host ....
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Savoir si l'ordinateur est connecté à un site web
    Par T4unt dans le forum C#
    Réponses: 4
    Dernier message: 25/02/2013, 20h18
  2. Réponses: 23
    Dernier message: 14/09/2009, 19h30
  3. Réponses: 3
    Dernier message: 12/02/2009, 15h09
  4. Réponses: 2
    Dernier message: 24/08/2007, 11h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo