Unsolved PHP Ausgabe einlesen
-
Hi @Thomas-63
Ich habe noch nicht mit QNetworkReply gearbeitet, aber ich vermute, dass dein Programm einfach viel zu schnell versucht, Daten auszuwerten.
Nach Dokumenation: http://doc.qt.io/qt-5/qnetworkreply.html#finished:
This signal is emitted when the reply has finished processing. After this signal is emitted, there will be no more updates to the reply's data or metadata.
Du solltest also QNetworkReply *reply als Klassen-Member restellen und das Signal finished mit einem Slot deiner Klasse verbinden. Dort müsstest Du dann die Daten auslesen können.
-
Oh, wow... das klingt kompliziert. :-)
Scheint mir eher für meine Fähigkeiten zu viel...
-
@Thomas-63: Dann empfehle ich Dir, im QtCreator das HTTP example zu öffnen (Welcome -> Examples -> nach http suchen).
Dieses Beispiel scheint genau das zu machen was Du brauchst.
-
Ich habe folgendes gemacht:
QObject::connect(nam, SIGNAL(finished(QNetworkReply*)), &eventLoop, SLOT(quit())); QNetworkReply* reply = nam->get(QNetworkRequest(url));
Hilft auch nix.
-
@Thomas-63 Wozu denn eine EventLoop?
Einfach slot verbinden. In der Doku gibt es auch ein Beispiel (http://doc.qt.io/qt-5/qnetworkaccessmanager.html):QNetworkAccessManager *manager = new QNetworkAccessManager(this); connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(replyFinished(QNetworkReply*))); manager->get(QNetworkRequest(QUrl("http://qt-project.org")));
Qt ist assynchron also sollte man auch assynchron programmieren statt zu versuchen es zu serialisieren.
-
Besten Dank fürs Helfen!
Leider folgende Fehlermeldung:
QObject::connect: No such slot MainWindow::replyFinished(QNetworkReply*)
QObject::connect: (receiver name: 'MainWindow') -
@Thomas-63 Hast du denn so ein slot in MainWindow?
-
Nein, habe ich nicht. Ich weiss auch nicht wirklich, wie ich das korrekt einbinde.
Ist denn das "finished" automatisch dort eingebunden?
Das jabe ich auch nicht explizit selber eingefügt.
Sorry wegen der einfachen (für euch) Fragen, aber ich bin noch recht neu im QT
-
Eingerichtet habe ich die slots, weiss aber nicht was ich da drinnen ausführen soll.
-
@Thomas-63 http://doc.qt.io/qt-5.9/signalsandslots.html
http://doc.qt.io/qt-5/qnetworkaccessmanager.html
http://doc.qt.io/qt-5/qnetworkreply.html"Eingerichtet habe ich die slots, weiss aber nicht was ich da drinnen ausführen soll" - ich nehme mal an, dass du die Antwort (reply) lesen willst? Dafür kannst du QNetworkReply benutzen welches an dein slot übergeben wird.