Précédent   Forum du club des développeurs et IT Pro > C et C++ > Bibliothèques > Qt
Qt Forum d'entraide technique sur la bibliothèque Qt. Avant de poster -> F.A.Q Qt
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 03/11/2012, 10h35   #1
JackStrieger
Membre à l'essai
 
Inscription : avril 2007
Messages : 57
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 57
Points : 24
Points : 24
Par défaut Navigateur externe et POST

Bonjour à tous,

J'ai une demande assez particulière ! En fait, il faudrait que je puisse lancer un navigateur (celui par défaut) mais pouvoir loguer automatiquement un compte sur un site précis.

Donc envoyer un pseudo et un mot de passe en POST à l'ouverture d'un navigateur.

Auriez-vous une idée de comment je pourrais arriver à ce résultat ?

Merci
JackStrieger est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2012, 16h30   #2
Amnell
Rédacteur
 
Avatar de Amnell
 
Homme Louis du Verdier
Étudiant
Inscription : mars 2009
Messages : 1 600
Détails du profil
Informations personnelles :
Nom : Homme Louis du Verdier
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2009
Messages : 1 600
Points : 5 048
Points : 5 048
Bonjour,

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <QApplication>
#include <QWebView>
#include <QNetworkRequest>
 
int main (int argc, char *argv[])
{
    QApplication app(argc, argv);
 
    QByteArray data = QByteArray(QString("pseudo=xxx&password=xxx").toAscii());
 
    QWebView view;
    view.load(QNetworkRequest(QUrl("http://url.com/page_login.php")), QNetworkAccessManager::PostOperation, data);
    view.show();
 
    return app.exec();
}
Je ne suis pas sûr des informations à passer au QByteArray, cependant.

Bonne continuation,
Amnell.
Amnell est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2012, 17h31   #3
JackStrieger
Membre à l'essai
 
Inscription : avril 2007
Messages : 57
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 57
Points : 24
Points : 24
Merci de ta réponse, je vais tester ça

Mais ça me permet de passer les informations à un navigateur par défaut sur le system ? En faisait un

Code :
QDesktopServices::openUrl(QUrl("http://www.pagedelogin.com"));
par exemple ?
JackStrieger est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2012, 17h43   #4
dourouc05
Responsable Qt & Web sémantique

 
Avatar de dourouc05
 
Homme Thibaut Cuvelier
Étudiant
Inscription : août 2008
Messages : 18 577
Détails du profil
Informations personnelles :
Nom : Homme Thibaut Cuvelier
Localisation : Belgique

Informations professionnelles :
Activité : Étudiant
Secteur : Enseignement

Informations forums :
Inscription : août 2008
Messages : 18 577
Points : 74 137
Points : 74 137
Envoyer un message via MSN à dourouc05 Envoyer un message via Yahoo à dourouc05
Tu ne peux maîtriser avec du code Qt que ce que tu fais avec Qt, pas vraiment les applications externes (sauf API). Si tu veux passer des données POST dans le navigateur par défaut, génère un fichier HTML, mets-y un formulaire prérempli (avec des champs cachés) et envoie-le par JavaScript (c'est comme ça que fonctionne Trillian pour t'envoyer sur ta boîte mail). Depuis Qt, tu lanceras l'ouverture de ce fichier avec le navigateur par défaut.
__________________
Vous souhaitez participer aux rubriques Qt ou PyQt/PySide (tutoriels, FAQ, traductions, sources) ? Contactez-moi par MP.

Pas de question d'ordre technique par MP !
dourouc05 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2012, 20h49   #5
JackStrieger
Membre à l'essai
 
Inscription : avril 2007
Messages : 57
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 57
Points : 24
Points : 24
On c'est bien ce que je pensais ! Merci beaucoup pour vos réponses !

Citation:
Envoyé par dourouc05 Voir le message
Tu ne peux maîtriser avec du code Qt que ce que tu fais avec Qt, pas vraiment les applications externes (sauf API). Si tu veux passer des données POST dans le navigateur par défaut, génère un fichier HTML, mets-y un formulaire prérempli (avec des champs cachés) et envoie-le par JavaScript (c'est comme ça que fonctionne Trillian pour t'envoyer sur ta boîte mail). Depuis Qt, tu lanceras l'ouverture de ce fichier avec le navigateur par défaut.
JackStrieger est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2012, 10h41   #6
cho7
Nouveau Membre du Club
 
Inscription : janvier 2005
Messages : 60
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 60
Points : 33
Points : 33
Citation:
Envoyé par Amnell Voir le message
Bonjour,

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <QApplication>
#include <QWebView>
#include <QNetworkRequest>
 
int main (int argc, char *argv[])
{
    QApplication app(argc, argv);
 
    QByteArray data = QByteArray(QString("pseudo=xxx&password=xxx").toAscii());
 
    QWebView view;
    view.load(QNetworkRequest(QUrl("http://url.com/page_login.php")), QNetworkAccessManager::PostOperation, data);
    view.show();
 
    return app.exec();
}
Je ne suis pas sûr des informations à passer au QByteArray, cependant.

Bonne continuation,
Amnell.
Bonjour,

je suis assez nouveau dans le monde Qt (je suis plutôt dev java ou python habituellement), mais je suis incapable de trouver cette classe QWebView. Elle n'est ni dans le designer, ni dans dans #include <QWebView>.

Le seul endroit où j'ai trouvé un truc lui ressemblant, c'est dans #include <QtWebKitWidgets/QWebView> mais alors je dois être une quiche car j'ai des "symbole externe non résolu" dès que je tente de l'inclure...

Après investigation, il semble qu'il y ait eu pas mal de remue-ménage dans l'api Webkit ces derniers temps... où en sommes-nous ? Je n'ai pas trouvé une doc claire à ce sujet Ta réponse avait l'air d'être assez récente pourtant.. J'utilise QT 5 avec le creator 2.6.0

merci pour les infos !!


merci


edit : dans mon fichier .pro j'ai bien ajouté l'option webkit:

QT += core gui webkit

edit 2 : je progresse, depuis Qt 5 l'option de link s'appelle désormais webkitwidgets... j'aurai aimé avoir le module directement dispo depuis le QT Designer, mais ce sera pour plus tard je devrais déjà m'en sortir via le code... désolé pour le dérangement !
cho7 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 18h15.


 
 
 
 
Partenaires

Hébergement Web