1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| #include "Requete.hpp"
Requete::Requete() : QWidget() {
ligne_pseudo = new QLineEdit;
ligne_passe = new QLineEdit;
bouton_get = new QPushButton; bouton_get->setText("get");
layout = new QVBoxLayout(this);
reseau_moteur = new QNetworkAccessManager;
bocal_cookie = new QNetworkCookieJar;
layout->addWidget(ligne_pseudo);
layout->addWidget(ligne_passe);
layout->addWidget(bouton_get);
QObject::connect( bouton_get, SIGNAL(clicked()), this, SLOT(clic_envoi()) );
}
void Requete::clic_envoi() {
QString dataPost = "d=1320333735028&username=" + ligne_pseudo->text()
+ "&password=" + ligne_passe->text()
+ "&remindme=1" ;
QNetworkRequest reseau_requete( QUrl( "http://www.developpez.com/user/login" ) );
QNetworkReply* reseau_retour = reseau_moteur->post( reseau_requete, dataPost.toLatin1() );
QObject::connect( reseau_retour, SIGNAL(finished()), this, SLOT(resultat_post()) );
}
void Requete::resultat_post() { // Recuperation des coockies de session
QNetworkReply* get = qobject_cast<QNetworkReply*>(sender());
if( get->error()==QNetworkReply::NoError ) {
// La requete retourne bien les cookies recus dans liste_SetCookie
QList<QNetworkCookie> liste_SetCookie = QNetworkCookie::parseCookies( get->rawHeader( "Set-Cookie" ) );
bocal_cookie->setCookiesFromUrl( liste_SetCookie, get->url() );
// Aucun effet
reseau_moteur->setCookieJar( bocal_cookie );
//
QNetworkRequest reseau_requete( QUrl( "http://www.developpez.com" ) );
// Petit test d'envoi avec qnetworkrequest qui ne change strictement rien
reseau_requete.setHeader( QNetworkRequest::CookieHeader, QVariant::fromValue<QList<QNetworkCookie> > (liste_SetCookie) );
//
QNetworkReply* reseau_retour = reseau_moteur->get( reseau_requete );
QObject::connect( reseau_retour, SIGNAL(finished()), this, SLOT(resultat_get()) );
}
get->deleteLater();
}
void Requete::resultat_get() {
QNetworkReply* get = qobject_cast<QNetworkReply*>(sender());
if( get->error()==QNetworkReply::NoError ) {
QWebView *vue_web = new QWebView;
vue_web->setHtml( QString(get->readAll()) );
vue_web->show();
}
get->deleteLater();
} |
Partager