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

Réseau Discussion :

Exécuter des requêtes HTTP synchrones


Sujet :

Réseau

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Par défaut Exécuter des requêtes HTTP synchrones
    Bonjour,

    J'aimerai pouvoir utiliser les certains objets Qt en mode synchrone, comme QNetworkManager qui permet de faire des get http.
    Seulement ces objets ont clairement été conçus sur un modèle événementiel dans le cadre d'une application GUI.

    Pour le coup, un signal finished est émis lorsque la requête prend fin, ce qui permet d'appeler une fonction callback.
    La seule manière d'utiliser QNetworkManager de façon bloquante que j'ai trouvé est la suivante :

    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
    QNetworkRequest request( QUrl("http://..."  ));
        QNetworkAccessManager manager;
     
        QEventLoop eLoop;
     
        a.connect( &manager, SIGNAL( finished( QNetworkReply * ) ), &eLoop, SLOT(quit() ) );
        QNetworkReply *reply = manager.get( request);
        eLoop.exec();
     
        QByteArray array = reply->readAll();
     
        delete reply;
        reply = NULL;
     
     
        ....
    En gros créer une event loop bidon qui se termine lorsqu'un signal est reçu

    Rassurez-moi, il y a une meilleure solution?

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 98
    Par défaut pas mieux
    Je fais le même constat.

    J'ai une difficulté supplémentaire en ce qui me concerne. Le besoin est le même mais je fais me appels depuis une DLL et lorsque je tente d'utiliser la QEventLoop, j'ai le message console suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    QEventLoop: Cannot be used whithout QApplication
    QQ'un connait il un moyen de contourner cela? Sachant que je dois au final faire une DLL et que cela semble incompatible avec la QApplication demandée

  3. #3
    Membre éprouvé
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Par défaut
    Regarde ici pour une piste mais attention aux threads appelant la DLL:
    http://stackoverflow.com/questions/1...-loop-problems

    Ou sinon, utilise une autre lib.

Discussions similaires

  1. Réponses: 5
    Dernier message: 14/06/2007, 11h34
  2. [requête]Exécution des requêtes
    Par bacchus30 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 21/05/2007, 12h03
  3. Réponses: 2
    Dernier message: 24/04/2007, 00h18
  4. Historique des Requêtes http
    Par medchok dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 03/09/2006, 13h53
  5. [Struts] Ecouter des requêtes HTTP
    Par ledruide dans le forum Struts 1
    Réponses: 16
    Dernier message: 01/12/2005, 11h53

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