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 :

QHttp, un get sur un script, lire le retour


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 95
    Par défaut QHttp, un get sur un script, lire le retour
    Bonjour,
    J'ai un petit probleme avec qt,
    je voudrais faire un truc simple, c'est faire un get et je voudrais récuperer ce qu'il me renvoit en retour... en fait pour l'instant je fais ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    //initialise mon qhttp
    QHttp http1(QString::fromStdString("http://monserveur.com"));
     
    //fais le get
    string url = "?param1=1&param2=2";
    http1.get(QString::fromStdString(url));
     
    //pas trop compris mais je fais ca...
    //D'ailleur en debug, je ne rentre jamais dans la fonction finish_download
    QObject::connect(&http1,SIGNAL(requestFinished(int, bool)),(QObject*)this,SLOT(finish_dowload(int ,bool)));
    mon script me renvoit normalement:
    <answer id="0" message="mon "petit" message" temps_script="0.008"/>
    et c'est ca que j'aimerais récuperer...

    Mais comment faire?

    Merci beaucoup

  2. #2
    Membre expérimenté

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2006
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Juin 2006
    Messages : 281
    Par défaut
    La méthode est bonne, c'est juste une histoire de bonne fonction et de connaissance de Qt...

    Il faut implémenter dans la classe qui va faire la requete un slot qui va être appeler à la fin de la requete. De plus, ce j'aime bien faire, c'est écrire directement le résultat dans un buffer.

    Un exemple :

    CRequete.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    class CRequete : public QObject
    {
       Q_OBJECT
     
    public:
       CRequete();
       void go();
     
    private slots:
       void done(bool);
     
    private:
       QHttp m_http;
       QBuffer m_bufOut;
    };
    CRequete.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    CRequete::CRequete()
    {
       connect(&m_http, SIGNAL(done(bool)), this, SLOT(done(bool)));
    }
     
    void CRequete::go()
    {
       QUrl query;
       query.addQueryItem("param1", "1");
       query.addQueryItem("param2", "2");
     
       m_bufOut.open(QIODevice::WriteOnly);
       m_http.setHost("http://monserveur.com");
       m_http.get(query.toString(), &m_bufOut);
    }
     
    void CRequete::done(bool)
    {
       m_bufOut.close();
       // Il n' y aplus qu'à lire le buffer...
    }

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


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

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 127
    Billets dans le blog
    149
    Par défaut
    Il manque toujours quelque chose je pense.

    Pour avoir les informations de retour d'un serveur ( cookie et autre ), il faut utiliser le signal:
    responseHeaderReceived(const QHttpResponseHeader&)

    Qui donnera toutes les informations voulu en lisant le QHttpResponseHeader.
    ( avec la fonction value(clé) )
    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. Lire des data POST / GET sur serveur HTTP
    Par rems033 dans le forum Débuter
    Réponses: 2
    Dernier message: 27/12/2010, 19h32
  2. Question sur les script sh
    Par gandalfar dans le forum Linux
    Réponses: 6
    Dernier message: 26/12/2005, 18h14
  3. Besoin d'aide sur un script SQL de recherche
    Par agougeon dans le forum Langage SQL
    Réponses: 5
    Dernier message: 26/10/2005, 11h40
  4. Question sur un script
    Par Gnux dans le forum Linux
    Réponses: 8
    Dernier message: 07/07/2005, 17h03
  5. installation sur serveur + script
    Par liliprog dans le forum Langages de programmation
    Réponses: 7
    Dernier message: 18/08/2004, 15h18

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