Je travaille sur une classe qui implémentera un client pour un certain protocole de messagerie instantanée.
Je dois d'abord faire une requête HTTP, puis lire les données et faire une autre requête HTTP avec les données traitées reçues de la première requête et seulement après la deuxième requête je peux ouvrir une socket tcp au serveur. Quelle est la meilleure façon (meilleure façon QT?) D'y arriver car je n'ai pas trouvé de moyen de bloquer jusqu'à ce que la requête HTTP soit terminée. J'envisageais d'utiliser libcurl pour cette partie, mais il me semble que c'est une exagération d'utiliser une autre lib.Téléchargement Qt et HTTP
1
A
Répondre
1
QHttp
envoie un ensemble de signaux pour notifier l'état d'une demande. Vous pouvez par exemple connecter le signal requestFinished()
à un emplacement qui le traitera et démarrer votre seconde requête.
Idée en pseudo-qt
//possibly in constructor
connect(myHttp, SIGNAL(requestFinished(int, bool)),
this, SLOT(requestHandler(int, bool)))
//first call somewhere
firstReqId = myHttp->get("first.com", buff);
void requestHandler(int id, bool error)
{
if (error)
panic();
if(id == firstReqId) {
process(buff);
secondReqId = myHttp->get("second.com", buff2);
}
if (id == secondReqId) {
process(buff2);
sock.connectToHost("server.com", "5222"); //etc
}
}
Ou comme une autre solution, vous pouvez intelligemment utiliser les structures de verrouillage telles que QMutex
et envelopper QHttp en mettant en œuvre votre propre méthode de demande de blocage, qui permettra à une demande à la fois. Mais je pense que dans votre cas, la première approche est meilleure.
Questions connexes
- 1. Qt HTTP Server?
- 2. Qt Authentification HTTP avec QNetworkAccessManager
- 3. Get http statut Qt WebKit
- 4. Téléchargement de fichier HTTP standard?
- 5. téléchargement simultané de fichiers en python et qt
- 6. téléchargement progressif de liens http et de jouer en android
- 7. Http flux de téléchargement en PHP et MySQL
- 8. Téléchargement FTP vs HTTP sur iPhone
- 9. Téléchargement de fichier HTTP PUT en C#
- 10. C# Téléchargement de fichiers via HTTP
- 11. Bolck téléchargement et le téléchargement
- 12. Téléchargement en vrac de pages Web en utilisant Qt
- 13. Comment obtenir le dossier de téléchargement de l'utilisateur dans Qt?
- 14. Module HTTP et HTTP gestionnaire
- 15. Comment utiliser QCA (http://delta.affinix.com/qca/) avec Qt4.7 (Qt Creator)?
- 16. Envoyer des informations d'en-tête HTTP avec Qt QNetworkAccessManager
- 17. Téléchargement et téléchargement d'un fichier dans JSP
- 18. Qt et menus natifs
- 19. Qt et auto_ptr
- 20. Exemples Qt et Sqlite
- 21. Qt: QAbstractItemModel et 'const'
- 22. Intégration Cairo et Qt
- 23. Qt/webkit et flash
- 24. Créateur C++ et QT
- 25. Qt Jambi et threads
- 26. Téléchargement de fichiers via un HTTP POST en C++
- 27. Compresser le fichier avant le téléchargement via http
- 28. 413 erreur HTTP sur le téléchargement d'image dans iis6
- 29. une image bitmap Téléchargement du serveur avec le protocole http
- 30. 2 questions à propos du téléchargement du fichier HTTP